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`