中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中help命令怎么用

發布時間:2021-11-02 17:01:05 來源:億速云 閱讀:315 作者:小新 欄目:MySQL數據庫

小編給大家分享一下MySQL中help命令怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

01

help 語句信息從哪里取的

MySQL Server提供4張表用于保存服務端的幫助信息(使用help語法查看的幫助信息),這些表位于mysql 系統字典庫下。help 語句就是從這些表中獲取數據并返回給客戶端,如下:

  • help_category:關于幫助主題類別的信息

  • help_keyword:與幫助主題相關的關鍵字信息

  • help_relation:幫助關鍵字信息和主題信息之間的映射

  • help_topic:幫助主題的詳細內容

02

help 語句信息何時產生的

這些表在數據庫初始化時通過加載share/fill_help_tables.sql文件創建,如果是在Unix上使用二進制或源代碼發行版安裝MySQL,則在初始化數據目錄時會直接導入該文件對幫助表內容進行初始化。對于在Linux上的RPM分發版或Windows上的二進制發行版,幫助表的內容初始化是作為MySQL安裝過程的一部分執行。

  • 如果使用二進制發行版升級MySQL,則不會自動升級幫助表,但可以手動升級(手工加載share/fill_help_tables.sql文件),如:shell> mysql -u root mysql <fill_help_tables.sql

  • 您可以隨時獲取最新的fill_help_tables.sql以升級您的幫助表。從http://dev.mysql.com/doc/index-other.html下載適用于您的MySQL版本的正確文件

03

help 幫助信息存儲表詳解

help 語法支持3種模式的匹配查詢:查看所有主題頂層類別或子類別、查看幫助主題下的關鍵字、使用給定主題下的唯一關鍵字查看幫助信息,這些信息分表保存在 help_category、help_topic、help_keyword表,help_relation表存放help_topic與help_keyword表中信息的映射信息。下面將針對這幾張表的基礎知識進行簡單的科普。

(1)help_category

該表提供查詢幫助主題的類別信息,每一個類別分別對應著N個幫助主題名或者主題子類別名,通過查詢表中的信息我們也可以看出來,如下:

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:幫助主題名稱或子類別名稱在表中的記錄ID

  • name:幫助主題類別名稱或字類別名稱

  • parent_category_id:父主題類別名稱在表中的記錄ID,一些主題類別具有子主題類別,例如:絕大多數的主題類別其實是Contents類別的子類別(且是頂層類別,也是一級父類別),還有一部分是Geographic Features 類別的子類別(二級父類別),一部分是Functions的子類別(二級父類別)

  • url :對應在MySQL 官方手冊中的鏈接地址

(2)help_keyword

該表提供查詢與幫助主題相關的關鍵字字符串信息,如下:

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:幫助關鍵字名稱在表中記錄對應的ID

  • name:幫助關鍵字字符串

(3)help_relation

該表提供查詢幫助關鍵字信息和主題詳細信息之間的映射,用于關聯查詢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:幫助主題詳細信息ID,該ID值與help_topic表中的help_topic_id相等

  • help_keyword_id:幫助主題關鍵字信息ID,該ID值與help_keyword表中的help_keyword_id相等

(4)help_topic

該表提供查詢幫助主題給定關鍵字的詳細內容(詳細幫助信息),如下:

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:幫助主題詳細信息在表記錄中對應的ID

  • name:幫助主題給定的關鍵字名稱,與help_keyword表中的name字段值相等

  • help_category_id:幫助主題類別ID,與help_category表中的help_category_id字段值相等

  • description:幫助主題的詳細信息(這里就是我們通常查詢幫助信息真正想看的內容,例如:告訴我們某某語句如何使用的語法與注意事項等)

  • example:幫助主題的示例信息(這里告訴我們某某語句如何使用的示例)

  • url:該幫助主題對應在MySQL官方在線手冊中的URL鏈接地址

04

help 語句用法示例

前面我們提到過,help 語法支持3種模式的匹配查詢。那么,回到文章開頭我們拋出的問題,記不清某個語句的具體拼寫了,只能模糊的記得幾個字母,或者說很清楚知道想要查什么幫助信息,但是卻不知道用什么關鍵字來查詢幫助信息(例如:想要查看解析relaylog的SQL語句)。這個時候怎么辦呢?

(1)我只記得某幾個字母怎么辦

MySQL 提供的幫助信息實際上可以直接給定一個主題關鍵字進行查詢,不需要指定主題名稱,如果你記錄某個SQL子句關鍵字的其中的幾個字母,那么可以使用這些字母多嘗試幾次,如下:

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]  # 原來是這樣用的
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:這里實際上就相當于那help 語句給定的關鍵字去匹配help_keyword表的name字段,如果有記錄返回,則使用help_category、help_keyword、help_relation、help_topic四表做復雜的關聯查詢,右聯結help_topic表中的name字段,如果返回唯一記錄就返回幫助信息,如果返回多行,則返回一個關鍵字列表,使用這些具體的關鍵字可查詢到具體的幫助信息,例如:

root@localhost : performance_schema 11:05:06> help where
.....
where <item> is one of the following
topics:  # 使用where作為關鍵字返回了一個關鍵字列表,表示where還會與這三個關鍵字組合使用,where的詳細用法從列表中隨便挑選一個關鍵字即可看到
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關鍵字的用法在這里
[ORDER BY ...]
[LIMIT row_count]
......
(2)我啥都不記得怎么辦

如果你啥都不記得,那就只能使用最笨的方法,地毯式查找

首先,我們就隨便敲幾個字母給help語句好了,例如:help xxx

root@localhost : performance_schema 10:09:49> help xxx;
Nothing found  # 這句告訴你幫助信息沒找到
# 不要緊,下面這句告訴你,用help contents語句來列出所有的可能的幫助主題信息
Please try to run 'help contents' for a list of all accessible topics

然后,查看所有的主題類別

root@localhost : performance_schema 10:31:47> help contents
You asked for help about help category: "Contents"
For more information, type 'help <item>', where <item> is one of the following
categories:
Account Management
Administration  # 通過主題或主題類別名稱,大致判定一下,查看relaylog事件內容的語句應該是屬于管理語句
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 查看該幫助主題下的所有關鍵字

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語句來查看具體的幫助信息

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]  # 原來是這樣用的
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,現在相信你已經比較清晰地了解了MySQL 幫助系統的組成以及help 到底能給我們提供一些什么幫助信息了,下面給大家再補充點小知識:

  • HELP語句中給定的搜索關鍵字不區分大小寫

  • 搜索關鍵字可以包含通配符%和_,效果與LIKE運算符執行的模式匹配操作含義相同。例如:HELP 'rep%'返回以rep開頭的主題列表

  • 如果幫助類別字符串、幫助主題字符串包含多個字符的,則可以使用引號引起來,也可以不使用引號,為避免歧義,最好使用引號引起來

05

幫助信息表相關的注意事項

對于參與復制的數據庫實例,幫助表更新有一些注意事項。幫助表默認情況下會寫入到binlog中(因為這些幫助表是跟版本匹配的,升級一個實例的版本,其他實例也有同步更新的必要),所以,你需要考慮是否需要在升級主庫幫助表的時候同時把這些更新通過主庫binlog同步更新到從庫中。

  • 如果主從庫版本不同,那么主從庫就需要單獨升級幫助信息表 

  • 如果是MySQL 5.7.5之前的版本,則主從庫分別升級幫助信息表使用命令:mysql --init-command="SET sql_log_bin=0" mysql < fill_help_tables.sql 

  • 如果是MySQL 5.7.5 及其之后的版本,則不需要使用--init-command="SET sql_log_bin=0" ,因為fill_help_tables.sql文件中包含了SET sql_log_bin=0,所以主從庫只需要分別執行命令:mysql mysql < fill_help_tables.sql 即可

  • 如果是主從版本相同,那么主從庫可以通過在主庫升級,通過復制來更新從庫的幫助信息表

  • 如果是MySQL 5.7.5之前的版本,則只需要在主庫中執行命令:mysql mysql < fill_help_tables.sql 即可 

  • 如果是MySQL 5.7.5 及其之后的版本,則需要先在主庫服務器中修改ll_help_tables.sql 文件,去掉SET sql_log_bin=0,然后在主庫執行命令:mysql mysql < fill_help_tables.sql 即可

以上是“MySQL中help命令怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

象州县| 固镇县| 临海市| 隆回县| 西乌| 桐城市| 原平市| 湄潭县| 贺州市| 兴国县| 北京市| 颍上县| 贵阳市| 鸡泽县| 修水县| 泾川县| 井陉县| 东宁县| 兖州市| 聂拉木县| 赤峰市| 安泽县| 松江区| 泰州市| 抚松县| 桐乡市| 吴桥县| 怀仁县| 江孜县| 上思县| 武汉市| 高雄市| 礼泉县| 五大连池市| 富川| 铜梁县| 四平市| 水城县| 宁乡县| 同德县| 辽阳县|