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 Template:Wp 1 id A 19 NULL NULL Template:Wp

刪除索引:

DROP INDEX `date_2` on `Table1`