小編給大家分享一下MySQL中help命令怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今,先為長(zhǎng)泰等服務(wù)建站,長(zhǎng)泰等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為長(zhǎng)泰企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
MySQL Server提供4張表用于保存服務(wù)端的幫助信息(使用help語(yǔ)法查看的幫助信息),這些表位于mysql 系統(tǒng)字典庫(kù)下。help 語(yǔ)句就是從這些表中獲取數(shù)據(jù)并返回給客戶(hù)端,如下:
help_category:關(guān)于幫助主題類(lèi)別的信息
help_keyword:與幫助主題相關(guān)的關(guān)鍵字信息
help_relation:幫助關(guān)鍵字信息和主題信息之間的映射
help_topic:幫助主題的詳細(xì)內(nèi)容
這些表在數(shù)據(jù)庫(kù)初始化時(shí)通過(guò)加載share/fill_help_tables.sql文件創(chuàng)建,如果是在Unix上使用二進(jìn)制或源代碼發(fā)行版安裝MySQL,則在初始化數(shù)據(jù)目錄時(shí)會(huì)直接導(dǎo)入該文件對(duì)幫助表內(nèi)容進(jìn)行初始化。對(duì)于在Linux上的RPM分發(fā)版或Windows上的二進(jìn)制發(fā)行版,幫助表的內(nèi)容初始化是作為MySQL安裝過(guò)程的一部分執(zhí)行。
如果使用二進(jìn)制發(fā)行版升級(jí)MySQL,則不會(huì)自動(dòng)升級(jí)幫助表,但可以手動(dòng)升級(jí)(手工加載share/fill_help_tables.sql文件),如:shell> mysql -u root mysql
您可以隨時(shí)獲取最新的fill_help_tables.sql以升級(jí)您的幫助表。從http://dev.mysql.com/doc/index-other.html下載適用于您的MySQL版本的正確文件
help 語(yǔ)法支持3種模式的匹配查詢(xún):查看所有主題頂層類(lèi)別或子類(lèi)別、查看幫助主題下的關(guān)鍵字、使用給定主題下的唯一關(guān)鍵字查看幫助信息,這些信息分表保存在 help_category、help_topic、help_keyword表,help_relation表存放help_topic與help_keyword表中信息的映射信息。下面將針對(duì)這幾張表的基礎(chǔ)知識(shí)進(jìn)行簡(jiǎn)單的科普。
該表提供查詢(xún)幫助主題的類(lèi)別信息,每一個(gè)類(lèi)別分別對(duì)應(yīng)著N個(gè)幫助主題名或者主題子類(lèi)別名,通過(guò)查詢(xún)表中的信息我們也可以看出來(lái),如下:
root@localhost : mysql 01:10:59> select * from help_category; +------------------+-----------------------------------------------+--------------------+-----+ | help_category_id | name | parent_category_id | url | +------------------+-----------------------------------------------+--------------------+-----+ | 1 | Geographic | 0 | | | 2 | Polygon properties | 35 | | ...... | 39 | Functions | 36 | | | 40 | Data Definition | 36 | | +------------------+-----------------------------------------------+--------------------+-----+ 40 rows in set (0.00 sec)
表字段含義
help_category_id:幫助主題名稱(chēng)或子類(lèi)別名稱(chēng)在表中的記錄ID
name:幫助主題類(lèi)別名稱(chēng)或字類(lèi)別名稱(chēng)
parent_category_id:父主題類(lèi)別名稱(chēng)在表中的記錄ID,一些主題類(lèi)別具有子主題類(lèi)別,例如:絕大多數(shù)的主題類(lèi)別其實(shí)是Contents類(lèi)別的子類(lèi)別(且是頂層類(lèi)別,也是一級(jí)父類(lèi)別),還有一部分是Geographic Features 類(lèi)別的子類(lèi)別(二級(jí)父類(lèi)別),一部分是Functions的子類(lèi)別(二級(jí)父類(lèi)別)
url :對(duì)應(yīng)在MySQL 官方手冊(cè)中的鏈接地址
該表提供查詢(xún)與幫助主題相關(guān)的關(guān)鍵字字符串信息,如下:
root@localhost : mysql 01:12:07> select * from help_keyword limit 5; +-----------------+---------+ | help_keyword_id | name | +-----------------+---------+ | 681 | (JSON | | 486 | -> | | 205 | ->> | | 669 | <> | | 521 | ACCOUNT | +-----------------+---------+ 5 rows in set (0.00 sec)
表字段含義
help_keyword_id:幫助關(guān)鍵字名稱(chēng)在表中記錄對(duì)應(yīng)的ID
name:幫助關(guān)鍵字字符串
該表提供查詢(xún)幫助關(guān)鍵字信息和主題詳細(xì)信息之間的映射,用于關(guān)聯(lián)查詢(xún)help_keyword與help_topic表,如下:
root@localhost : mysql 01:13:09> select * from help_relation limit 5; +---------------+-----------------+ | help_topic_id | help_keyword_id | +---------------+-----------------+ | 0 | 0 | | 535 | 0 | | 294 | 1 | | 277 | 2 | | 2 | 3 | +---------------+-----------------+ 5 rows in set (0.00 sec)
表字段含義
help_topic_id:幫助主題詳細(xì)信息ID,該ID值與help_topic表中的help_topic_id相等
help_keyword_id:幫助主題關(guān)鍵字信息ID,該ID值與help_keyword表中的help_keyword_id相等
該表提供查詢(xún)幫助主題給定關(guān)鍵字的詳細(xì)內(nèi)容(詳細(xì)幫助信息),如下:
root@localhost : mysql 01:13:31> select * from help_topic limit 1\G; *************************** 1. row *************************** help_topic_id: 0 name: JOIN help_category_id: 28 description: MySQL supports the following JOIN syntaxes for the table_references part of SELECT statements and multiple-table DELETE and UPDATE statements: table_references: escaped_table_reference [, escaped_table_reference] ... escaped_table_reference: table_reference | { OJ table_reference } ...... url: http://dev.mysql.com/doc/refman/5.7/en/join.html 1 row in set (0.00 sec)
表字段含義
help_topic_id:幫助主題詳細(xì)信息在表記錄中對(duì)應(yīng)的ID
name:幫助主題給定的關(guān)鍵字名稱(chēng),與help_keyword表中的name字段值相等
help_category_id:幫助主題類(lèi)別ID,與help_category表中的help_category_id字段值相等
description:幫助主題的詳細(xì)信息(這里就是我們通常查詢(xún)幫助信息真正想看的內(nèi)容,例如:告訴我們某某語(yǔ)句如何使用的語(yǔ)法與注意事項(xiàng)等)
example:幫助主題的示例信息(這里告訴我們某某語(yǔ)句如何使用的示例)
url:該幫助主題對(duì)應(yīng)在MySQL官方在線手冊(cè)中的URL鏈接地址
前面我們提到過(guò),help 語(yǔ)法支持3種模式的匹配查詢(xún)。那么,回到文章開(kāi)頭我們拋出的問(wèn)題,記不清某個(gè)語(yǔ)句的具體拼寫(xiě)了,只能模糊的記得幾個(gè)字母,或者說(shuō)很清楚知道想要查什么幫助信息,但是卻不知道用什么關(guān)鍵字來(lái)查詢(xún)幫助信息(例如:想要查看解析relaylog的SQL語(yǔ)句)。這個(gè)時(shí)候怎么辦呢?
MySQL 提供的幫助信息實(shí)際上可以直接給定一個(gè)主題關(guān)鍵字進(jìn)行查詢(xún),不需要指定主題名稱(chēng),如果你記錄某個(gè)SQL子句關(guān)鍵字的其中的幾個(gè)字母,那么可以使用這些字母多嘗試幾次,如下:
root@localhost : performance_schema 10:43:40> help relay # 嘗試第一次 Nothing found Please try to run 'help contents' for a list of all accessible topics root@localhost : performance_schema 10:44:00> help relay logs # 嘗試第二次 Nothing found Please try to run 'help contents' for a list of all accessible topics root@localhost : performance_schema 10:44:06> help relaylogs # 嘗試第三次 Nothing found Please try to run 'help contents' for a list of all accessible topics root@localhost : performance_schema 10:44:09> help relaylog # 嘗試第四次,oy,成功了 Name: 'SHOW RELAYLOG EVENTS' Description: Syntax: SHOW RELAYLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count] # 原來(lái)是這樣用的 Shows the events in the relay log of a replication slave. If you do not specify 'log_name', the first relay log is displayed. This statement has no effect on the master. URL: http://dev.mysql.com/doc/refman/5.7/en/show-relaylog-events.html
PS:這里實(shí)際上就相當(dāng)于那help 語(yǔ)句給定的關(guān)鍵字去匹配help_keyword表的name字段,如果有記錄返回,則使用help_category、help_keyword、help_relation、help_topic四表做復(fù)雜的關(guān)聯(lián)查詢(xún),右聯(lián)結(jié)help_topic表中的name字段,如果返回唯一記錄就返回幫助信息,如果返回多行,則返回一個(gè)關(guān)鍵字列表,使用這些具體的關(guān)鍵字可查詢(xún)到具體的幫助信息,例如:
root@localhost : performance_schema 11:05:06> help where ..... where- is one of the following topics: # 使用where作為關(guān)鍵字返回了一個(gè)關(guān)鍵字列表,表示where還會(huì)與這三個(gè)關(guān)鍵字組合使用,where的詳細(xì)用法從列表中隨便挑選一個(gè)關(guān)鍵字即可看到 DELETE HANDLER UPDATE root@localhost : performance_schema 11:09:05> help delete Name: 'DELETE' Description: Syntax: DELETE is a DML statement that removes rows from a table. Single-Table Syntax DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [PARTITION (partition_name,...)] [WHERE where_condition] # where關(guān)鍵字的用法在這里 [ORDER BY ...] [LIMIT row_count] ......
如果你啥都不記得,那就只能使用最笨的方法,地毯式查找
首先,我們就隨便敲幾個(gè)字母給help語(yǔ)句好了,例如:help xxx
root@localhost : performance_schema 10:09:49> help xxx; Nothing found # 這句告訴你幫助信息沒(méi)找到 # 不要緊,下面這句告訴你,用help contents語(yǔ)句來(lái)列出所有的可能的幫助主題信息 Please try to run 'help contents' for a list of all accessible topics
然后,查看所有的主題類(lèi)別
root@localhost : performance_schema 10:31:47> help contents You asked for help about help category: "Contents" For more information, type 'help- ', where
- is one of the following categories: Account Management Administration # 通過(guò)主題或主題類(lèi)別名稱(chēng),大致判定一下,查看relaylog事件內(nèi)容的語(yǔ)句應(yīng)該是屬于管理語(yǔ)句 Compound Statements Data Definition Data Manipulation Data Types Functions Functions and Modifiers for Use with GROUP BY Geographic Features Help Metadata Language Structure Plugins Procedures Storage Engines Table Maintenance Transactions User-Defined Functions Utility
使用help Administration 查看該幫助主題下的所有關(guān)鍵字
root@localhost : performance_schema 10:37:27> help Administration ...... SHOW PROCEDURE CODE SHOW PROCEDURE STATUS SHOW PROCESSLIST SHOW PROFILE SHOW PROFILES SHOW RELAYLOG EVENTS # 找到了,在這里 ......
使用SHOW RELAYLOG EVENTS語(yǔ)句來(lái)查看具體的幫助信息
root@localhost : performance_schema 10:41:53> help SHOW RELAYLOG EVENTS Name: 'SHOW RELAYLOG EVENTS' Description: Syntax: SHOW RELAYLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count] # 原來(lái)是這樣用的 Shows the events in the relay log of a replication slave. If you do not specify 'log_name', the first relay log is displayed. This statement has no effect on the master. URL: http://dev.mysql.com/doc/refman/5.7/en/show-relaylog-events.html
OK,現(xiàn)在相信你已經(jīng)比較清晰地了解了MySQL 幫助系統(tǒng)的組成以及help 到底能給我們提供一些什么幫助信息了,下面給大家再補(bǔ)充點(diǎn)小知識(shí):
HELP語(yǔ)句中給定的搜索關(guān)鍵字不區(qū)分大小寫(xiě)
搜索關(guān)鍵字可以包含通配符%和_,效果與LIKE運(yùn)算符執(zhí)行的模式匹配操作含義相同。例如:HELP 'rep%'返回以rep開(kāi)頭的主題列表
如果幫助類(lèi)別字符串、幫助主題字符串包含多個(gè)字符的,則可以使用引號(hào)引起來(lái),也可以不使用引號(hào),為避免歧義,最好使用引號(hào)引起來(lái)
對(duì)于參與復(fù)制的數(shù)據(jù)庫(kù)實(shí)例,幫助表更新有一些注意事項(xiàng)。幫助表默認(rèn)情況下會(huì)寫(xiě)入到binlog中(因?yàn)檫@些幫助表是跟版本匹配的,升級(jí)一個(gè)實(shí)例的版本,其他實(shí)例也有同步更新的必要),所以,你需要考慮是否需要在升級(jí)主庫(kù)幫助表的時(shí)候同時(shí)把這些更新通過(guò)主庫(kù)binlog同步更新到從庫(kù)中。
如果主從庫(kù)版本不同,那么主從庫(kù)就需要單獨(dú)升級(jí)幫助信息表
如果是MySQL 5.7.5之前的版本,則主從庫(kù)分別升級(jí)幫助信息表使用命令:mysql --init-command="SET sql_log_bin=0" mysql < fill_help_tables.sql
如果是MySQL 5.7.5 及其之后的版本,則不需要使用--init-command="SET sql_log_bin=0" ,因?yàn)閒ill_help_tables.sql文件中包含了SET sql_log_bin=0,所以主從庫(kù)只需要分別執(zhí)行命令:mysql mysql < fill_help_tables.sql 即可
如果是主從版本相同,那么主從庫(kù)可以通過(guò)在主庫(kù)升級(jí),通過(guò)復(fù)制來(lái)更新從庫(kù)的幫助信息表
如果是MySQL 5.7.5之前的版本,則只需要在主庫(kù)中執(zhí)行命令:mysql mysql < fill_help_tables.sql 即可
如果是MySQL 5.7.5 及其之后的版本,則需要先在主庫(kù)服務(wù)器中修改ll_help_tables.sql 文件,去掉SET sql_log_bin=0,然后在主庫(kù)執(zhí)行命令:mysql mysql < fill_help_tables.sql 即可
以上是“MySQL中help命令怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!