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`