SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW COLUMNS
显示有关给定表中列的信息。它也适用于视图。 SHOW COLUMNS
仅显示您对这些列具有某些权限的列的信息。
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 节“静默列规范更改” 中进行了描述。
SHOW COLUMNS
为每个表列显示以下值
字段
列的名称。
类型
列数据类型。
排序规则
非二进制字符串列的排序规则,或其他列的
NULL
。 仅当您使用FULL
关键字时才会显示此值。空
列的可空性。 如果列可以存储
NULL
值,则值为YES
,否则为NO
。键
列是否被索引
如果
Key
为空,则该列要么没有索引,要么仅作为多列非唯一索引中的辅助列被索引。如果
Key
为PRI
,则该列为PRIMARY KEY
或为多列PRIMARY KEY
中的列之一。如果
Key
为UNI
,则该列为UNIQUE
索引的第一列。(UNIQUE
索引允许多个NULL
值,但您可以通过检查Null
字段来判断该列是否允许NULL
。)如果
Key
为MUL
,则该列为非唯一索引的第一列,在该索引中允许在该列中多次出现给定值。
如果多个
Key
值应用于表的给定列,则Key
会显示优先级最高的那个,按照PRI
、UNI
、MUL
的顺序。如果
UNIQUE
索引不能包含NULL
值并且表中没有PRIMARY KEY
,则它可能会显示为PRI
。 如果多个列构成复合UNIQUE
索引,则UNIQUE
索引可能会显示为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 节“生成不可见主键”。