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_name
db_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 节,“生成的不可见主键”。