Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 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_name,其中 db_name 是数据库的名称。请参阅 第 15.7.7.41 节,“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 语句”,以获取更多关于该语句的信息。