SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
显示列 显示给定表中的列信息。它也适用于视图。显示列 只显示您拥有某些权限的列的信息。
mysql> SHOW COLUMNS FROM City;
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | MUL | | |
| District | char(20) | NO | | | |
| Population | int(11) | NO | | 0 | |
+-------------+----------+------+-----+---------+----------------+
替代 语法是 tbl_name FROM db_namedb_name.tbl_name。这两个语句是等效的:
SHOW COLUMNS FROM mytable FROM mydb;
SHOW COLUMNS FROM mydb.mytable;
可选的 EXTENDED 关键字使输出包括 MySQL 内部使用的隐藏列信息,这些列对用户不可访问。
可选的 FULL 关键字使输出包括列排序和注释,以及每个列的权限。
如果存在,LIKE 子句指定要匹配的列名。WHERE 子句可以用于使用更通用的条件选择行,如 第 28.8 节,“SHOW 语句扩展” 中所述。
数据类型可能与您期望的 CREATE TABLE 语句不同,因为 MySQL 有时会在创建或修改表时更改数据类型。这些情况在 第 15.1.20.7 节,“静默列规范更改” 中有所描述。
显示列 显示每个表列的以下值:
-
字段列的名称。
-
类型列的数据类型。
-
排序非二进制字符串列的排序,或者其他列的
NULL。只有在使用FULL关键字时才显示该值。 -
空列的可空性。如果可以在列中存储
NULL值,则该值为YES,否则为NO。 -
键该列是否被索引:
-
如果
键为空,则该列不是索引列,或者是多列非唯一索引的次要列。 -
如果
键是PRI,则该列是PRIMARY KEY或是多列PRIMARY KEY的一列。 -
如果
键是UNI,则该列是唯一索引的第一列。(唯一索引允许多个NULL值,但您可以通过检查空字段来确定该列是否允许NULL值。) -
如果
键是MUL,则该列是非唯一索引的第一列,在该列中允许多个给定值的出现。
如果某个表的某列满足多个
键值,则键显示优先级最高的那个,按照PRI、UNI、MUL的顺序。唯一索引可能显示为
PRI,如果它不能包含NULL值且表中没有PRIMARY KEY。唯一索引可能显示为MUL,如果多个列组成一个复合唯一索引;尽管该组合是唯一的,但每个列仍可以包含多个给定值的出现。 -
-
默认该列的默认值。如果该列的默认值是
NULL,或者该列定义中没有DEFAULT子句,则该值为NULL。 -
额外关于该列的任何其他可用信息。该值非空时,以下情况成立:
-
权限您对该列的权限。该值仅在使用
FULL关键字时显示。 -
注释列定义中的任何注释。该值仅在使用
FULL关键字时显示。
表列信息也可以从 INFORMATION_SCHEMA COLUMNS 表中获得。见 第 28.3.8 节,“INFORMATION_SCHEMA COLUMNS 表”。扩展的隐藏列信息仅可以使用 SHOW EXTENDED COLUMNS 获得;无法从 COLUMNS 表中获得。
您可以使用 mysqlshow db_name tbl_name 命令列出表的列。
DESCRIBE 语句提供了类似于 SHOW COLUMNS 的信息。见 第 15.8.1 节,“DESCRIBE 语句”。
SHOW CREATE TABLE、SHOW TABLE STATUS 和 SHOW INDEX 语句也提供了关于表的信息。见 第 15.7.7 节,“SHOW 语句”。
SHOW COLUMNS 包括表的生成的不可见主键,如果它有一个,默认情况下。您可以通过设置 show_gipk_in_create_table_and_information_schema = OFF 来抑制该信息在语句的输出中。有关更多信息,请参阅 第 15.1.20.11 节,“生成的不可见主键”。