SHOW [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;
可选FULL关键字使输出包括列排序规则和注释,以及您对每一列的权限。
该LIKE子句(如果存在)指示要匹配的列名。该
WHERE子句可以使用更一般的条件来选择行,如
第 24.8 节,“SHOW 语句的扩展”中所讨论的。
数据类型可能与您基于CREATE TABLE语句期望的不同,因为 MySQL 有时会在您创建或更改表时更改数据类型。发生这种情况的条件在第 13.1.18.6 节“静默列规范更改”中有所描述。
SHOW COLUMNS为每个表列显示以下值:
Field列名称。
Type列数据类型。
CollationNULL非二进制字符串列或其他列 的排序规则 。FULL仅当您使用关键字 时才会显示此值。Null列的可空性。该值是值
YES是否NULL可以存储在列中,NO如果不是。Key该列是否被索引:
如果
Key为空,则该列未编制索引或仅作为多列非唯一索引中的辅助列编制索引。如果
Key是PRI,则该列是一个PRIMARY KEY或是多列中的列之一PRIMARY KEY。如果
Key是UNI,则该列是UNIQUE索引的第一列。(UNIQUE索引允许多个 值,但您可以通过检查字段NULL来判断该列是否允许。)NULLNull如果
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表格中获得。请参阅
第 24.3.5 节,“INFORMATION_SCHEMA COLUMNS 表”。
您可以使用mysqlshow
db_name
tbl_name命令
列出表的列。
该DESCRIBE声明提供的信息类似于SHOW
COLUMNS。请参阅第 13.8.1 节,“DESCRIBE 语句”。
、SHOW CREATE TABLE和
语句还提供有关表的信息SHOW TABLE STATUS。
SHOW INDEX请参阅第 13.7.5 节,“SHOW 语句”。