MySQL 超新手入門(17)查詢 information_schema by Michael | CodeData
top

MySQL 超新手入門(17)查詢 information_schema

分享:

專欄作者新書出版:Android App程式開發剖析 第三版(適用Android 8 Oreo與Android Studio 3)

MySQL 超新手入門(16)Triggers << 前情

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資訊:

mysql_17_snap_01

在之前所討論過的查詢敘述用法,都可以用來查詢「information_schema」資料庫:

mysql_17_snap_02

2 SHOW指令

除了使用查詢敘述直接查詢「information_schema」資料庫中的資訊外,MySQL資料庫伺服器供有許多不同用法的「SHOW」指令,同樣可以查詢資料庫資訊。「SHOW」指令是MySQL資料庫伺服器專用的指令,並不是標準的SQL敘述。

2.1 資料庫元件資訊

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中的資料庫資訊:

mysql_17_snap_03

「SHOW DATABASES」指令也可以搭配使用「LIKE」關鍵字:

mysql_17_snap_04

註:字串樣式的設定在「基礎查詢、條件查詢、字串樣式」中討論。

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中的表格資訊:

mysql_17_snap_05

「SHOW TABLES」敘述會傳回目前使用中資料庫的所有表格名稱,你可以搭配「FROM」與「LIKE」關鍵字查詢需要的表格資訊:

mysql_17_snap_06

「SHOW TABLES」敘述只會傳回表格名稱,如果需要詳細的表格資訊,可以使用下列的「SHOW TABLE STATUS」敘述:

mysql_17_snap_07

「SHOW TABLE STATUS」敘述可以搭配「LIKE」或「WHERE」關鍵字:

mysql_17_snap_08

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中的欄位資訊:

mysql_17_snap_09

「SHOW COLUMNS FROM 表格」敘述會傳回目前使用中資料庫,指定表格名稱的欄位資訊,你可以搭配第二個「FROM」關鍵字指定資料庫:

mysql_17_snap_10

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中的索引資訊:

mysql_17_snap_11

「SHOW INDEX FROM 表格」敘述會傳回目前使用中資料庫,指定表格名稱的索引資訊,你可以搭配第二個「FROM」關鍵字指定資料庫:

mysql_17_snap_12

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中的trigger資訊:

mysql_17_snap_13

「SHOW TRIGGERS」敘述會傳回目前使用中資料庫的所有trigger資訊,你可以搭配「FROM」關鍵字指定資料庫;「LIKE」或「WHERE」關鍵字可以設定查詢條件:

mysql_17_snap_14

2.2 建立元件資訊

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中建立各種元件的詳細資訊:

指令 說明
SHOW CREATE DATABASE 資料庫名稱 查詢建立資料庫的詳細資訊
SHOW CREATE TABLE 表格名稱 查詢建立表格的詳細資訊
SHOW CREATE FUNCTION 名稱 查詢建立Function的詳細資訊
SHOW CREATE PROCEDURE 名稱 查詢建立Procedure的詳細資訊
SHOW CREATE VIEW 名稱 查詢建立View的詳細資訊

下列的敘述可以查詢建立「world.city」表格的敘述:

mysql_17_snap_15

2.3 字元集與collation

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中的字元集與collation資訊:

mysql_17_snap_16

「SHOW CHARACTER SET」與「SHOW COLLATION」敘述都可以搭配「LIKE」或「WHERE」關鍵字設定查詢條件:

mysql_17_snap_17

2.4 其它資訊

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器中支援的儲存引擎資訊:

mysql_17_snap_18

下列的「SHOW」指令語法可以查詢MySQL資料庫伺服器狀態與系統變數資訊:

mysql_17_snap_19

下列的敘述可以查詢MySQL資料庫伺服器中與字元集相關的變數資訊:

mysql_17_snap_20

3 DESCRIBE指令

「DESCRIBE」是MySQL資料庫伺服器提供的特殊指令,並不是標準的SQL敘述。它可以查詢指定表格的欄位資訊:

mysql_17_snap_21

「DESCRIBE」敘述可以指定要查詢的欄位名稱,或是使用樣版字串設定查詢條件:

mysql_17_snap_22

4 mysqlshow

MySQL資料庫伺服器提供一個可以在命令提示字元下執行的工具程式「mysqlshow」:

mysql_17_snap_24

「mysqlshow」工具程式有下列幾種不同的用法:

mysql_17_snap_25

 

後續 >> MySQL 超新手入門(18)錯誤處理與查詢

分享:
按讚!加入 CodeData Facebook 粉絲群

相關文章

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

熱門論壇文章

熱門技術文章