MySQL 9.0 参考手册  /  教程  /  获取有关数据库和表的的信息

5.4 获取有关数据库和表的的信息

如果你忘记了数据库或表的名字,或者忘记了某个表的结构(例如,它的列名是什么),MySQL 通过几个语句解决了这个问题,这些语句提供有关它支持的数据库和表的的信息。

您之前已经见过 SHOW DATABASES,它列出服务器管理的数据库。要找出当前选择了哪个数据库,请使用 DATABASE() 函数

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie  |
+------------+

如果您还没有选择任何数据库,则结果为 NULL

要找出默认数据库包含哪些表(例如,当您不确定表的名称时),请使用以下语句

mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event               |
| pet                 |
+---------------------+

此语句输出的列名称始终为 Tables_in_db_name,其中 db_name 是数据库的名称。有关更多信息,请参见 第 15.7.7.38 节,“SHOW TABLES 语句”

如果您想了解表的结构,DESCRIBE 语句很有用;它显示有关表中每个列的的信息

mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | YES  |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | YES  |     | NULL    |       |
| sex     | char(1)     | YES  |     | NULL    |       |
| birth   | date        | YES  |     | NULL    |       |
| death   | date        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

Field 指示列名,Type 是列的数据类型,NULL 指示该列是否可以包含 NULL 值,Key 指示该列是否被索引,Default 指定该列的默认值。Extra 显示有关列的特殊信息:如果列是使用 AUTO_INCREMENT 选项创建的,则该值为 auto_increment 而不是空。

DESCDESCRIBE 的简写形式。有关更多信息,请参见 第 15.8.1 节,“DESCRIBE 语句”

您可以使用 SHOW CREATE TABLE 语句获取创建现有表所需的 CREATE TABLE 语句。有关更多信息,请参见 第 15.7.7.11 节,“SHOW CREATE TABLE 语句”

如果您在表上有索引,SHOW INDEX FROM tbl_name 会生成有关它们的的信息。有关此语句的更多信息,请参见 第 15.7.7.23 节,“SHOW INDEX 语句”