1. 程式人生 > >mysql中的information_schema

mysql中的information_schema

在 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) 	列名。 

在這裡插入圖片描述