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;
optionalEXTENDED
关键字导致输出包含有关 MySQL 内部使用且用户无法访问的隐藏列的信息。
可选FULL
关键字使输出包括列排序规则和注释,以及您对每一列的权限。
该LIKE
子句(如果存在)指示要匹配的列名。该
WHERE
子句可以使用更一般的条件来选择行,如
第 26.8 节,“SHOW 语句的扩展”中所讨论的。
数据类型可能与您基于CREATE TABLE
语句期望的不同,因为 MySQL 有时会在您创建或更改表时更改数据类型。发生这种情况的条件在第 13.1.20.7 节“静默列规范更改”中有所描述。
SHOW COLUMNS
为每个表列显示以下值:
Field
列的名称。
Type
列数据类型。
Collation
NULL
非二进制字符串列或其他列 的排序规则 。FULL
仅当您使用关键字 时才会显示此值。Null
列的可空性。该值是值
YES
是否NULL
可以存储在列中,NO
如果不是。Key
该列是否被索引:
如果
Key
为空,则该列未编制索引或仅作为多列非唯一索引中的辅助列编制索引。如果
Key
是PRI
,则该列是一个PRIMARY KEY
或是多列中的列之一PRIMARY KEY
。如果
Key
是UNI
,则该列是UNIQUE
索引的第一列。(UNIQUE
索引允许多个 值,但您可以通过检查字段NULL
来判断该列是否允许。)NULL
Null
如果
Key
是MUL
,则该列是非唯一索引的第一列,在该索引中允许在该列中多次出现给定值。
如果多个
Key
值应用于表的给定列,Key
则显示具有最高优先级的值,顺序为PRI
,UNI
,MUL
。UNIQUE
索引可能显示为 好像PRI
它不能包含NULL
值并且PRIMARY KEY
表中没有。一个UNIQUE
索引可能显示为MUL
多个列组成一个复合UNIQUE
索引;尽管列的组合是唯一的,但每一列仍然可以包含多次出现的给定值。Default
列的默认值。这是
NULL
如果列具有显式默认值NULL
,或者如果列定义不包含任何DEFAULT
子句。Extra
有关给定列的任何其他可用信息。在这些情况下该值是非空的:
Privileges
您对该列拥有的权限。
FULL
仅当您使用关键字 时才会显示此值。Comment
列定义中包含的任何注释。
FULL
仅当您使用关键字 时才会显示此值。
表格列信息也可从
INFORMATION_SCHEMA
COLUMNS
表格中获得。请参阅
第 26.3.8 节,“INFORMATION_SCHEMA COLUMNS 表”。有关隐藏列的扩展信息只能使用
SHOW EXTENDED COLUMNS
; 它不能从COLUMNS
表中获得。
您可以使用mysqlshow
db_name
tbl_name
命令
列出表的列。
该DESCRIBE
声明提供的信息类似于SHOW
COLUMNS
。请参阅第 13.8.1 节,“DESCRIBE 语句”。
、SHOW CREATE TABLE
和
语句还提供有关表的信息SHOW TABLE STATUS
。
SHOW INDEX
请参阅第 13.7.7 节,“SHOW 语句”。
在 MySQL 8.0.30 及更高版本中,SHOW COLUMNS
默认情况下包括表生成的不可见主键(如果有的话)。您可以通过设置 使该信息在语句的输出中被抑制
show_gipk_in_create_table_and_information_schema
= OFF
。有关详细信息,请参阅
第 13.1.20.11 节,“生成的不可见主键”。