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 语句的扩展” 中所述。
数据类型可能与您根据 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 节“生成不可见主键”。