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許可權,否則無法檢視檢視資訊。
TRIGGERS表:提供了關於觸發程式的資訊。必須有super許可權才能檢視該表
以下是具體示例:
MySQL檢視某個欄位在哪個資料庫的哪張表中:
mysql> use information_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
例如查APPLY_ID欄位在哪個資料庫的哪張表裡:
mysql> select TABLE_SCHEMA,TABLE_NAME from COLUMNS where COLUMN_NAME='APPLY_ID';
+----------------------+------------+
| TABLE_SCHEMA | TABLE_NAME |
+----------------------+------------+
| ixinnuo_financial | f_apply |
| ixinnuo_financial-_T | f_apply |
| test | f_apply |
+----------------------+------------+
3 rows in set (0.06 sec)
MySQL查詢某張表在哪個資料庫裡:
例如檢視t_zcfzb表在哪個資料庫裡:
mysql> select TABLE_SCHEMA from tables where table_name='t_zcfzb';
+----------------------+
| TABLE_SCHEMA |
+----------------------+
| ixinnuo_financial |
| ixinnuo_financial-_T |
| test |
+----------------------+
3 rows in set (0.00 sec)
結果顯示t_zcfzb在三個資料裡都有.
查詢MySQL中某個資料庫中有多少張表:
例如檢視test資料庫:
mysql> SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'test' GROUP BY table_schema;
+--------+--------------+
| TABLES | table_schema |
+--------+--------------+
| 34 | test |
+--------+--------------+
1 row in set (0.00 sec)
查詢MySQL中某個資料庫中某個表裡有多少列:
例如:
mysql> select count(*) from columns where TABLE_NAME='t_zcfzb' and TABLE_SCHEMA='test';
+----------+
| count(*) |
+----------+
| 13 |
+----------+
1 row in set (0.00 sec)
結果顯示test庫裡t_zcfzb表有13列.
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許可權,否則無法檢視檢視資訊。
TRIGGERS表:提供了關於觸發程式的資訊。必須有super許可權才能檢視該表
以下是具體示例:
MySQL檢視某個欄位在哪個資料庫的哪張表中:
mysql> use information_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
例如查APPLY_ID欄位在哪個資料庫的哪張表裡:
mysql> select TABLE_SCHEMA,TABLE_NAME from COLUMNS where COLUMN_NAME='APPLY_ID';
+----------------------+------------+
| TABLE_SCHEMA | TABLE_NAME |
+----------------------+------------+
| ixinnuo_financial | f_apply |
| ixinnuo_financial-_T | f_apply |
| test | f_apply |
+----------------------+------------+
3 rows in set (0.06 sec)
MySQL查詢某張表在哪個資料庫裡:
例如檢視t_zcfzb表在哪個資料庫裡:
mysql> select TABLE_SCHEMA from tables where table_name='t_zcfzb';
+----------------------+
| TABLE_SCHEMA |
+----------------------+
| ixinnuo_financial |
| ixinnuo_financial-_T |
| test |
+----------------------+
3 rows in set (0.00 sec)
結果顯示t_zcfzb在三個資料裡都有.
查詢MySQL中某個資料庫中有多少張表:
例如檢視test資料庫:
mysql> SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'test' GROUP BY table_schema;
+--------+--------------+
| TABLES | table_schema |
+--------+--------------+
| 34 | test |
+--------+--------------+
1 row in set (0.00 sec)
查詢MySQL中某個資料庫中某個表裡有多少列:
例如:
mysql> select count(*) from columns where TABLE_NAME='t_zcfzb' and TABLE_SCHEMA='test';
+----------+
| count(*) |
+----------+
| 13 |
+----------+
1 row in set (0.00 sec)
結果顯示test庫裡t_zcfzb表有13列.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2130050/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 舉例說明Oracle資料庫審計的用法Oracle資料庫
- 舉例說明在組合語言中,"[]"的用法組合語言
- Mysql 左右連線舉例說明MySql
- java中的單例模式,舉例說明。Java單例模式
- mysql的 information_schema 資料庫介紹MySqlORM資料庫
- 核心FAQ 舉例說明 (轉)
- Activiti(一) activiti資料庫表說明資料庫
- MySQL資料庫監控項說明MySql資料庫
- MySQL預設資料庫之 information_schema庫MySql資料庫ORM
- 反直覺SQL舉例說明SQL
- mysql資料庫誤刪除操作說明MySql資料庫
- Zabbix系統MySQL資料庫分割槽表的設定--精簡說明MySql資料庫
- mysql資料庫show的常用命令說明MySql資料庫
- 資料庫表的連線方式及用法(一)資料庫
- mysql replace into用法詳細說明MySql
- Mysql匯出表結構及表資料 mysqldump用法MySql
- ECshop 每個資料庫表結構說明資料庫
- 【mysql】SUBSTRING_INDEX 用法舉例MySqlIndex
- 手工建立資料庫的全部指令碼及說明(轉)資料庫指令碼
- 教你手工建立資料庫的全部指令碼及說明資料庫指令碼
- 手工建立資料庫的全部指令碼及說明 (轉)資料庫指令碼
- mysql資料庫誤刪除後的資料恢復操作說明MySql資料庫資料恢復
- MySQL 資料庫誤刪除後的資料恢復操作說明MySql資料庫資料恢復
- 說一下泛型原理,並舉例說明泛型
- 【AMM】關於資料庫例項AMM引數說明資料庫
- mysql_config_editor用法舉例MySql
- 說說Vue 3.0中Treeshaking特性?舉例說明一下?Vue
- 什麼叫執行緒安全,舉例說明。執行緒
- Standby資料庫常用操作說明資料庫
- JDBC連線MySQL資料庫及演示樣例JDBCMySql資料庫
- 【MYSQL】InnoDB行溢位資料說明MySql
- 時間複雜度計算和舉例說明時間複雜度
- 資料泵的TRANSFORM引數說明及使用ORM
- mysql資料庫查詢pdo的用法MySql資料庫
- CONSTRAINT的用法舉例AI
- postgresql資料庫重要引數說明SQL資料庫
- 資料庫欄位簡寫說明資料庫
- 如何在Oracle資料庫中查詢表和欄位說明Oracle資料庫