**目錄**
[TOC]
# 1 information_schema數據庫
一個建立好并且運作中的數據庫,通常會包含表格、字段與索引,為了擴充數據庫的功能,也可能會加入stored routines與triggers元件。MySQL把這些數據庫的資訊放在“information_schema”數據庫,下列是這個數據庫中主要的表格:
| 表格名稱 | 說明 |
| --- | --- |
| CHARACTER_SETS | MySQL數據庫支援的字符集 |
| COLLATIONS | MySQL數據庫支援的collation |
| COLLATION_CHARACTER_SET_APPLICABILITY | 字符集與collation對應資訊 |
| COLUMNS | 字段資訊 |
| COLUMN_PRIVILEGES | 字段授權資訊 |
| KEY_COLUMN_USAGE | 索引字段的限制資訊 |
| ENGINES | MySQL數據庫支援的儲存引擎 |
| GLOBAL_STATUS | MySQL數據庫服務器狀態資訊 |
| GLOBAL_VARIABLES | MySQL數據庫服務器變量資訊 |
| KEY_COLUMN_USAGE | 索引鍵資訊 |
| ROUTINES | Stored routines資訊 |
| SCHEMATA | 數據庫資訊 |
| SESSION_STATUS | 用戶端連線狀態資訊 |
| SESSION_VARIABLES | 用戶端連線變量資訊 |
| STATISTICS | 表格索引資訊 |
| TABLES | 表格資訊 |
| TABLE_CONSTRAINTS | 表格限制資訊 |
| TABLE_PRIVILEGES | 表格授權資訊 |
| TRIGGERS | Triggers資訊 |
| USER_PRIVILEGES | 使用者授權資訊 |
| VIEWS | Views資訊 |
“information_schema”數據庫稱為“database metadata”,包含數據庫元件與服務器運作的完整資訊都儲存在這個數據庫中。你不須要自己建立與維護“information_schema”數據庫,它是由MySQL數據庫服務器負責建立與維護的。你只能夠在需要的時候,使用“SELECT”敘述來查詢儲存在里面的資料。
下列的查詢敘述可以傳回MySQL數據庫服務器中所有的stored routines資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d67a9dd28.png)
在之前所討論過的查詢敘述用法,都可以用來查詢“information_schema”數據庫:
[](http://box.kancloud.cn/2015-07-18_55a9d67b729b4.png)
# 2 SHOW指令
除了使用查詢敘述直接查詢“information_schema”數據庫中的資訊外,MySQL數據庫服務器供有許多不同用法的“SHOW”指令,同樣可以查詢數據庫資訊。“SHOW”指令是MySQL數據庫服務器專用的指令,并不是標準的SQL敘述。
## 2.1 數據庫元件資訊
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中的數據庫資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d68dde284.png)
“SHOW DATABASES”指令也可以搭配使用“LIKE”關鍵字:
[](http://box.kancloud.cn/2015-07-18_55a9d6950b3f9.png)
注:字串樣式的設定在“基礎查詢、條件查詢、字串樣式”中討論。
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中的表格資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d69823063.png)
“SHOW TABLES”敘述會傳回目前使用中數據庫的所有表格名稱,你可以搭配“FROM”與“LIKE”關鍵字查詢需要的表格資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d69a925cf.png)
“SHOW TABLES”敘述只會傳回表格名稱,如果需要詳細的表格資訊,可以使用下列的“SHOW TABLE STATUS”敘述:
[](http://box.kancloud.cn/2015-07-18_55a9d6a6a6c73.png)
“SHOW TABLE STATUS”敘述可以搭配“LIKE”或“WHERE”關鍵字:
[](http://box.kancloud.cn/2015-07-18_55a9d6b20ced9.png)
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中的字段資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d6b3f2e73.png)
“SHOW COLUMNS FROM 表格”敘述會傳回目前使用中數據庫,指定表格名稱的字段資訊,你可以搭配第二個“FROM”關鍵字指定數據庫:
[](http://box.kancloud.cn/2015-07-18_55a9d6b5817bb.png)
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中的索引資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d6c6ee53a.png)
“SHOW INDEX FROM 表格”敘述會傳回目前使用中數據庫,指定表格名稱的索引資訊,你可以搭配第二個“FROM”關鍵字指定數據庫:
[](http://box.kancloud.cn/2015-07-18_55a9d70358145.png)
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中的trigger資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d7183da9d.png)
“SHOW TRIGGERS”敘述會傳回目前使用中數據庫的所有trigger資訊,你可以搭配“FROM”關鍵字指定數據庫;“LIKE”或“WHERE”關鍵字可以設定查詢條件:
[](http://box.kancloud.cn/2015-07-18_55a9d71a45b8b.png)
## 2.2 建立元件資訊
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中建立各種元件的詳細資訊:
| 指令 | 說明 |
| --- | --- |
| SHOW CREATE DATABASE 數據庫名稱 | 查詢建立數據庫的詳細資訊 |
| SHOW CREATE TABLE 表格名稱 | 查詢建立表格的詳細資訊 |
| SHOW CREATE FUNCTION 名稱 | 查詢建立Function的詳細資訊 |
| SHOW CREATE PROCEDURE 名稱 | 查詢建立Procedure的詳細資訊 |
| SHOW CREATE VIEW 名稱 | 查詢建立View的詳細資訊 |
下列的敘述可以查詢建立“world.city”表格的敘述:
[](http://box.kancloud.cn/2015-07-18_55a9d72aa3998.png)
## 2.3 字符集與collation
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中的字符集與collation資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d72c977f6.png)
“SHOW CHARACTER SET”與“SHOW COLLATION”敘述都可以搭配“LIKE”或“WHERE”關鍵字設定查詢條件:
[](http://box.kancloud.cn/2015-07-18_55a9d7326f228.png)
## 2.4 其它資訊
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器中支援的儲存引擎資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d73385b5e.png)
下列的“SHOW”指令語法可以查詢MySQL數據庫服務器狀態與系統變量資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d73b22ca5.png)
下列的敘述可以查詢MySQL數據庫服務器中與字符集相關的變量資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d73c5d9f5.png)
# 3 DESCRIBE指令
“DESCRIBE”是MySQL數據庫服務器提供的特殊指令,并不是標準的SQL敘述。它可以查詢指定表格的字段資訊:
[](http://box.kancloud.cn/2015-07-18_55a9d73de765d.png)
“DESCRIBE”敘述可以指定要查詢的字段名稱,或是使用樣版字串設定查詢條件:
[](http://box.kancloud.cn/2015-07-18_55a9d741dfddc.png)
# 4 mysqlshow
MySQL數據庫服務器提供一個可以在命令提示字符下執行的工具程式“mysqlshow”:
[](http://box.kancloud.cn/2015-07-18_55a9d74b9e7ff.png)
“mysqlshow”工具程式有下列幾種不同的用法:
[](http://box.kancloud.cn/2015-07-18_55a9d76419f3e.png)