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:

FieldTypeCollationNullKeyDefaultExtraPrivilegesComment
...........................

列出索引

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

命令行mysqlshow -k

其他方法:

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

KEYS同义INDEX

例如:

TableNon_uniqueKey_nameSeq_in_indexColumn_nameCollationCardinalitySub_partPackedNullIndex_typeCommentIndex_comment
Table10PRIMARY1idA19NULLNULLBTREE

删除索引:

DROP INDEX `date_2` on `Table1`
Category:MySQL#Language/Browsing%20the%20databases%20
Category:MySQL