13.7.5.5 SHOW COLUMNS 语句
SHOW [FULL] {COLUMNS | FIELDS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW COLUMNS显示有关给定 table 中列的信息。它也适用于视图。 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;
可选的FULL
关键字使输出包含列排序规则和 Comments,以及每列的特权。
LIKE子句(如果存在)指示要匹配的列名称。可以提供WHERE
子句以使用更一般的条件选择行,如第 24.35 节,“ SHOW 语句的扩展”中所述。
数据类型可能与您期望的基于CREATE TABLE语句的数据类型有所不同,因为 MySQL 在创建或更改 table 时有时会更改数据类型。发生这种情况的条件在第 13.1.18.6 节“静默列规范更改”中进行了描述。
SHOW COLUMNS为每个 table 列显示以下值:
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
值应用于 table 的给定列,则Key
以PRI
,UNI
,MUL
的 Sequences 显示优先级最高的那个。
如果UNIQUE
索引不能包含NULL
值并且 table 中没有PRIMARY KEY
,则它可能显示为PRI
。如果几列构成复合UNIQUE
索引,则UNIQUE
索引可能显示为MUL
;尽管各列的组合是唯一的,但各列仍可以容纳多次出现的给定值。
Default
列的默认值。如果列的显式默认值为NULL
,或者列定义不包含DEFAULT
子句,则为NULL
。
Extra
有关给定列的任何其他可用信息。在以下情况下,该值是非空的:
-
auto_increment
用于具有AUTO_INCREMENT
属性的列。 -
Privileges
您具有该列的特权。仅当您使用FULL
关键字时,才显示此值。
Comment
列定义中包含的任何 Comments。仅当您使用FULL
关键字时,才显示此值。
table 列信息也可从INFORMATION_SCHEMA
COLUMNStable 中获得。参见第 24.5 节“ INFORMATION_SCHEMA COLUMNStable”。
您可以使用mysqlshow db_name tbl_name命令列出 table 的列。
DESCRIBE语句提供的信息类似于SHOW COLUMNS。参见第 13.8.1 节“ DESCRIBE 语句”。
显示创建 table,显示 table 格状态和SHOW INDEX语句还提供有关 table 的信息。参见第 13.7.5 节“ SHOW 语句”。