SHOW COLUMNS语句
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 mytableFROM mydb;SHOW COLUMNS FROM mydb.mytable;
可选EXTENDED
关键字使输出包含有关MySQL内部使用的隐藏列的信息,用户无法访问这些隐藏列。
可选FULL
关键字使输出包含列排序规则和注释,以及每列的特权。
该LIKE
子句(如果存在)指示要匹配的列名称。的WHERE
条款可以给出使用更一般的条件来选择行,如在讨论第25.48,“扩展到SHOW语句”。
数据类型可能与您期望基于CREATE TABLE
语句的数据类型有所不同,因为在创建或更改表时,MySQL有时会更改数据类型。“静默色谱柱规格变更”中描述了发生这种情况的条件。
SHOW COLUMNS
为每个表列显示以下值:
Field
列的名称。
Type
列数据类型。
Collation
非二进制字符串列或
NULL
其他列的排序规则。仅当您使用FULL
关键字时,才显示此值。Null
列的可空性。值是
YES
是否NULL
可以将值存储在列中(NO
如果不能)。Key
列是否被索引:
- 如果
Key
为空,则该列要么不被索引,要么仅被索引为多列非唯一索引中的第二列。 - 如果
Key
为isPRI
,PRIMARY KEY
则列为a 或为多列中的列之一PRIMARY KEY
。 - 如果
Key
为UNI
,则该列为UNIQUE
索引的第一列。(UNIQUE
索引允许使用多个NULL
值,但是您可以NULL
通过检查Null
字段来判断该列是否允许使用。) - 如果
Key
为isMUL
,则该列是非唯一索引的第一列,在该列中允许多次出现给定值。
如果超过一个
Key
值适用于表中给定的列,Key
显示一个具有最高优先级,顺序PRI
,UNI
,MUL
。甲
UNIQUE
索引可被显示为PRI
,如果它不能包含NULL
值并没有PRIMARY KEY
在表中。甲UNIQUE
索引可能会显示为MUL
如果若干列形成复合UNIQUE
索引;尽管各列的组合是唯一的,但各列仍可以容纳多次出现的给定值。- 如果
Default
列的默认值。这是
NULL
如果列有一个明确的默认NULL
,或者如果列定义不包括DEFAULT
条款。Extra
有关给定列的任何其他可用信息。在以下情况下,该值是非空的:
auto_increment
具有AUTO_INCREMENT
属性的列。on update CURRENT_TIMESTAMP
对于TIMESTAMP
或DATETIME
有列ON UPDATE CURRENT_TIMESTAMP
属性。VIRTUAL GENERATED
或VIRTUAL STORED
用于生成的列。DEFAULT_GENERATED
对于具有表达式默认值的列。
Privileges
您具有该列的特权。仅当您使用
FULL
关键字时,才显示此值。Comment
列定义中包含的任何注释。仅当您使用
FULL
关键字时,才显示此值。
表列信息也可从INFORMATION_SCHEMA
COLUMNS
表中获得。请参见“ INFORMATION_SCHEMA列表”。有关隐藏列的扩展信息仅可使用SHOW EXTENDED COLUMNS
;它不能从COLUMNS
表中获得。
您可以使用mysqlshow db_name
tbl_name
命令列出表的列。
该DESCRIBE
语句提供的信息类似于SHOW COLUMNS
。请参见“ DESCRIBE语句”。
SHOW CREATE TABLE
,SHOW TABLE STATUS
和SHOW INDEX
语句也可以提供有关表的信息。请参见“ SHOW语句”。