第13章: SQL语句语法 / 13.3. MySQL实用工具语句 / 13.3.1. DESCRIBE语法(获取有关列的信息)
{DESCRIBE | DESC} tbl_name [col_name | wild]

DESCRIBE可以提供有关表中各列的信息。它是SHOW COLUMNS FROM的快捷方式。这些语句也可以显示语句,用于阅览。

13.5.4.3节,“SHOW COLUMNS语法”

col_name可以是一个列名称,或一个包含‘%’和‘_’的通配符的字符串,用于获得对于带有与字符串相匹配的名称的各列的输出。没有必要在引号中包含字符串,除非其中包含空格或其它特殊字符。

mysql> DESCRIBE city;
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| Id         | int(11)  | NO   | PRI | NULL    | auto_increment |
| Name       | char(35) | NO   |     |         |                |
| Country    | char(3)  | NO   | UNI |         |                |
| District   | char(20) | YES  | MUL |         |                |
| Population | int(11)  | NO   |     | 0       |                |
+------------+----------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

NULL字段指示是否NULL可以被存储在列中。

Key字段指示是否该列已编制索引。PRI的值指示该列是表的主键的一部分。UNI指示,该列是UNIQUE索引的一部分。MUL值指示,在列中某个给定值多次出现是允许的。

MUL将被显示在UNIQUE索引中,原因之一是多个列会组合成一个复合UNIQUE索引;尽管列的组合是唯一的,但每个列仍可以多次出现同一个给定值。注意,在复合索引中,只有索引最左边的列可以进入Key字段中。

默认字段指示,默认值被赋予该列。

Extra字段包含可以获取的与给定列有关的附加信息。在我们的例子中,Extra字段指示,Id列使用AUTO_INCREMENT关键词创建。

如果列类型与您预计的依据CREATE TABLE语句得出的列类型不同,则请注意,MySQL有时会改变列类型。请参见13.1.5.1节,“沉寂的列规格变更”

DESCRIBE语句被设立出来,用于与Oracle相兼容。

SHOW CREATE TABLESHOW TABLE STATUS语句也可以提供有关表的信息。请参见13.5.4节,“SHOW语法”