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 语句扩展” 中所述。
由于 MySQL 在创建或更改表时有时会更改数据类型,因此数据类型可能与您根据 CREATE TABLE
语句的预期不同。 发生这种情况的条件在 第 15.1.20.7 节,“静默列规范更改” 中描述。
SHOW COLUMNS
为每个表列显示以下值
Field
列的名称。
Type
列的数据类型。
Collation
非二进制字符串列的排序规则,或其他列的
NULL
。 仅当您使用FULL
关键字时才会显示此值。Null
列的可空性。 如果列可以存储
NULL
值,则值为YES
,否则为NO
。Key
列是否被索引
如果
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
; 尽管列的组合是唯一的,但每列仍然可以包含多个给定值的实例。Default
列的默认值。 如果该列具有显式的
NULL
默认值,或者列定义不包含DEFAULT
子句,则此值为NULL
。Extra
有关给定列的任何其他可用信息。 在以下情况下,此值非空
Privileges
您对该列拥有的权限。 仅当您使用
FULL
关键字时才会显示此值。Comment
列定义中包含的任何注释。 仅当您使用
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 节,“生成不可见主键”。