MySQL/Language/Browsing the databases

INFORMATION_SCHEMA

編輯

information_schema是一個虛擬的、只讀資料庫。列出了資料庫伺服器的元信息。也可以用各個SHOW獲取信息。

列出資料庫

編輯
 select * from  INFORMATION_SCHEMA.SCHEMATA  

 SHOW DATABASES;

或命令行工具 mysqlshow

增加對資料庫名的過濾

編輯
 SHOW DATABASES LIKE 'pattern';
 SHOW DATABASES LIKE 'my%';

增加複雜過濾條件

編輯
 SHOW DATABASES WHERE conditions;

列出表和視圖

編輯

INFORMATION_SCHEMA資料庫的2張表:`TABLES`, `VIEWS`.

Show所有表

編輯
 USE `database`;
 SHOW TABLES;

 SHOW TABLES FROM `database`;

上述兩種方式等價。

應用過濾器

編輯
 SHOW TABLES LIKE `pattern`;
 SHOW TABLES WHERE condition;

額外信息

編輯
 SHOW FULL TABLES;

`Table_type`有3鍾:

  • 'BASE TABLE'普通表
  • 'VIEW' 視圖
  • 'SYSTEM VIEW'通常是INFORMATION_SCHEMA中的表
 SHOW FULL TABLES WHERE `Table_type`='BASE TABLE';
 SHOW FULL TABLES WHERE `Table_type`='VIEW';

Show only open tables

編輯

列出cache中所有非臨時表(也非view):

 SHOW OPEN TABLES;

列出所有的欄位(列)

編輯

INFORMATION_SCHEMA中的表COLUMNS

mysqlshow命令行工具。

DESCRIBE

編輯
 DESCRIBE `table`;
 DESCRIBE `database`.`table`;
 DESCRIBE `table` 'filter';

DESC 同義 DESCRIBE

'filter' 是列名的模式。

 DESC `table` 'my%';

EXPLAIN

編輯

同義:

 EXPLAIN `table`;

SHOW FIELDS

編輯

另外一個同義:

 SHOW FIELDS FROM `table`;

SHOW COLUMNS

編輯

另外一個同義:

 SHOW COLUMNS FROM `table`;

-- possible clauses:
 SHOW COLUMNS FROM `table` FROM `database`;
 SHOW COLUMNS FROM `table` LIKE 'pattern';
 SHOW COLUMNS FROM `table` WHERE condition;

FIELDS 同義 COLUMNS 。EXPLAIN 同義 SHOW COLUMNS / FIELDS。

指出資料庫名字:

 SHOW COLUMNS FROM `table` FROM `database`;

或者

 SHOW COLUMNS FROM `database`.`table`;

額外信息

編輯

關鍵字FULL:

Field Type Collation Null Key Default Extra Privileges Comment
... ... ... ... ... ... ... ... ...

列出索引

編輯

INFORMATION_SCHEMA中的表`COLUMNS`包含索引信息。

命令行mysqlshow -k

其他方法:

 SHOW INDEX FROM `TABLE`;
 SHOW INDEX FROM `TABLE` FROM `databases`;

KEYS同義INDEX

例如:

Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
Table1 0 PRIMARY 1 id A 19 NULL NULL BTREE

刪除索引:

DROP INDEX `date_2` on `Table1`