Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  Tutorial  /  Getting Information About Databases and Tables

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

如果您忘记了某个数据库或表名,或者想知道某个表结构是什么样(例如,它的列名是啥?),MySQL通过多个语句提供关于支持的数据库和表的信息。

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

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

如果您还没有选择任何数据库,那么结果是NULL

要知道默认数据库包含哪些表(例如,您不确定某个表名),使用这个语句:

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

输出结果中的列名总是Tables_in_db_namedb_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 语句”,了解更多信息。

可以使用 CREATE TABLE 语句来创建一个已存在的表。见第15.7.7.11节,“SHOW CREATE TABLE 语句”

如果您对一张表有索引,SHOW INDEX FROM tbl_name 语句将显示它们的信息。见第15.7.7.23节,“SHOW INDEX 语句”,了解更多关于该语句的信息。