如果您忘记了数据库或表的名称,或者给定表的结构是什么(例如,它的列叫什么)怎么办?MySQL 通过提供有关它支持的数据库和表的信息的几个语句来解决这个问题。
您之前已经看到SHOW
DATABASES
,其中列出了服务器管理的数据库。要找出当前选择了哪个数据库,请使用以下
DATABASE()
函数:
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
如果您尚未选择任何数据库,则结果为
NULL
。
要找出默认数据库包含哪些表(例如,当您不确定表名时),请使用以下语句:
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+
此语句生成的输出中列的名称始终为
,其中是数据库的名称。有关详细信息,请参阅第 13.7.5.37 节,“SHOW TABLES 语句”。
Tables_in_
db_name
db_name
如果你想了解一个表的结构,
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
indicates the column name,
Type
is the data type for the column,
NULL
indicates whether the column can contain
NULL
values, Key
indicates
whether the column is indexed, and Default
specifies the column's default value. Extra
displays special information about columns: If a column was
created with the AUTO_INCREMENT
option, the
value is auto_increment
rather than empty.
DESC
is a short form of
DESCRIBE
. See
Section 13.8.1, “DESCRIBE Statement”, for more information.
You can obtain the CREATE TABLE
statement necessary to create an existing table using the
SHOW CREATE TABLE
statement. See
Section 13.7.5.10, “SHOW CREATE TABLE Statement”.
如果您在表上有索引,则生成有关它们的信息。有关此语句的更多信息,请参阅第 13.7.5.22 节,“SHOW INDEX 语句”。
SHOW INDEX FROM
tbl_name