MySQL/Language/Browsing the databases
< MySQL
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`