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`