mysql中的information_schema
阿新 • • 發佈:2018-12-18
在 MySQL中,把 information_schema 看作是一個數據庫,確切說是資訊資料庫。其中儲存著關於MySQL伺服器所維護的所有其他資料庫的資訊。如資料庫名,資料庫的表,表欄的資料型別與訪問許可權等。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是檢視,而不是基本表,因此,你將無法看到與之相關的任何檔案。
information_schema資料庫中的表的作用
SCHEMATA表: 提供了當前mysql例項中所有資料庫的資訊。是show databases的結果取之此表。 TABLES表: 提供了關於資料庫中的表的資訊(包括檢視)。詳細表述了某個表屬於哪個schema,表型別,表引擎,建立時間等資訊。是show tables from schemaname的結果取之此表。 COLUMNS表: 提供了表中的列資訊。詳細表述了某張表的所有列以及每個列的資訊。是show columns from schemaname.tablename的結果取之此表。 STATISTICS表: 提供了關於表索引的資訊。是show index from schemaname.tablename的結果取之此表。 USER_PRIVILEGES(使用者許可權)表: 給出了關於全程許可權的資訊。該資訊源自mysql.user授權表。是非標準表。 SCHEMA_PRIVILEGES(方案許可權)表: 給出了關於方案(資料庫)許可權的資訊。該資訊來自mysql.db授權表。是非標準表。 TABLE_PRIVILEGES(表許可權)表: 給出了關於表許可權的資訊。該資訊源自mysql.tables_priv授權表。是非標準表。 COLUMN_PRIVILEGES(列許可權)表: 給出了關於列許可權的資訊。該資訊源自mysql.columns_priv授權表。是非標準表。 CHARACTER_SETS(字符集)表: 提供了mysql例項可用字符集的資訊。是SHOW CHARACTER SET結果集取之此表。 COLLATIONS表: 提供了關於各字符集的對照資訊。 COLLATION_CHARACTER_SET_APPLICABILITY表: 指明瞭可用於校對的字符集。這些列等效於SHOW COLLATION的前兩個顯示欄位。 TABLE_CONSTRAINTS表: 描述了存在約束的表。以及表的約束型別。 KEY_COLUMN_USAGE表: 描述了具有約束的鍵列。 ROUTINES表: 提供了關於儲存子程式(儲存程式和函式)的資訊。此時,ROUTINES表不包含自定義函式(UDF)。名為“mysql.proc name”的列指明瞭對應於INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。 VIEWS表: 給出了關於資料庫中的檢視的資訊。需要有show views許可權,否則無法檢視檢視資訊。
常用的表
information_schema.tables
information_schema.tables儲存了資料表的元資料資訊,下面對常用的欄位進行介紹:
table_schema: 記錄資料庫名;
table_name: 記錄資料表名;
engine : 儲存引擎;
table_rows: 關於表的粗略行估計;
data_length : 記錄表的大小(單位位元組);
index_length : 記錄表的索引的大小;
row_format: 可以檢視資料表是否壓縮過;
information_schema是資料庫,tables是表。 " . "連線資料庫和表。
information_schema.columns
TABLE_SCHEMA nvarchar(128) 表所有者。
TABLE_NAME nvarchar(128) 表名。
COLUMN_NAME nvarchar(128) 列名。