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