COLUMNS
表提供了表中列的信息。相关的 ST_GEOMETRY_COLUMNS
表提供了存储空间数据的表列的信息。参见 第 28.3.35 节“INFORMATION_SCHEMA ST_GEOMETRY_COLUMNS 表”。
COLUMNS
表包含以下列:
TABLE_CATALOG
包含该列的表所属的目录的名称。该值始终为
def
。TABLE_SCHEMA
包含该列的表所属的模式(数据库)的名称。
TABLE_NAME
包含该列的表的名称。
COLUMN_NAME
列的名称。
ORDINAL_POSITION
列在表中的位置。
ORDINAL_POSITION
是必需的,因为您可能需要使用ORDER BY ORDINAL_POSITION
。与SHOW COLUMNS
不同,从COLUMNS
表中SELECT
数据不会自动排序。COLUMN_DEFAULT
列的默认值。如果该列的显式默认值为
NULL
,或者列定义中不包含DEFAULT
子句,则此值为NULL
。IS_NULLABLE
列的可空性。如果该列可以存储
NULL
值,则该值为YES
,否则为NO
。DATA_TYPE
列数据类型。
DATA_TYPE
值仅为类型名称,不包含其他信息。COLUMN_TYPE
值包含类型名称和可能的其他信息,例如精度或长度。CHARACTER_MAXIMUM_LENGTH
对于字符串列,以字符为单位的最大长度。
CHARACTER_OCTET_LENGTH
对于字符串列,以字节为单位的最大长度。
NUMERIC_PRECISION
对于数值列,数值精度。
NUMERIC_SCALE
对于数值列,数值刻度。
DATETIME_PRECISION
对于时间列,小数秒精度。
CHARACTER_SET_NAME
对于字符串列,字符集名称。
COLLATION_NAME
对于字符串列,排序规则名称。
COLUMN_TYPE
列数据类型。
DATA_TYPE
值仅为类型名称,不包含其他信息。COLUMN_TYPE
值包含类型名称和可能的其他信息,例如精度或长度。COLUMN_KEY
该列是否已编制索引
如果
COLUMN_KEY
为空,则该列要么未编制索引,要么仅作为多列非唯一索引中的辅助列编制索引。如果
COLUMN_KEY
为PRI
,则该列是PRIMARY KEY
或多列PRIMARY KEY
中的一列。如果
COLUMN_KEY
为UNI
,则该列是UNIQUE
索引的第一列。(UNIQUE
索引允许多个NULL
值,但您可以通过检查Null
列来判断该列是否允许NULL
)。如果
COLUMN_KEY
为MUL
,则该列是非唯一索引的第一列,在该索引中,该列中允许多次出现给定值。
如果多个
COLUMN_KEY
值适用于表的给定列,则COLUMN_KEY
将按照PRI
、UNI
、MUL
的顺序显示优先级最高的值。如果
UNIQUE
索引不能包含NULL
值,并且表中没有PRIMARY KEY
,则它可能会显示为PRI
。如果多列构成复合UNIQUE
索引,则UNIQUE
索引可能会显示为MUL
;尽管列的组合是唯一的,但每列仍然可以包含给定值的多次出现。EXTRA
有关给定列的任何其他可用信息。在以下情况下,该值不为空:
PRIVILEGES
您对该列拥有的权限。
COLUMN_COMMENT
列定义中包含的任何注释。
GENERATION_EXPRESSION
对于生成的列,显示用于计算列值的表达式。对于非生成列,则为空。有关生成列的信息,请参阅第 15.1.20.8 节“CREATE TABLE 和生成列”。
SRS_ID
此值适用于空间列。它包含列
SRID
值,该值指示存储在列中的值的空間参照系。请参阅第 13.4.1 节“空间数据类型”和第 13.4.5 节“空间参照系支持”。对于非空间列和没有SRID
属性的空间列,该值为NULL
。
备注
在
SHOW COLUMNS
中,Type
显示包含来自多个不同COLUMNS
列的值。CHARACTER_OCTET_LENGTH
应该与CHARACTER_MAXIMUM_LENGTH
相同,但多字节字符集除外。CHARACTER_SET_NAME
可以从COLLATION_NAME
派生。例如,如果您说SHOW FULL COLUMNS FROM t
,并且您在COLLATION_NAME
列中看到值utf8mb4_swedish_ci
,则字符集是第一个下划线之前的内容:utf8mb4
。
SHOW COLUMNS
语句中也提供了列信息。请参阅第 15.7.7.6 节“SHOW COLUMNS 语句”。以下语句几乎等效
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name'
[AND table_schema = 'db_name']
[AND column_name LIKE 'wild']
SHOW COLUMNS
FROM tbl_name
[FROM db_name]
[LIKE 'wild']
默认情况下,此表中会显示有关生成的不可见主键列的信息。您可以通过设置 show_gipk_in_create_table_and_information_schema = OFF
来隐藏此类信息。有关更多信息,请参阅第 15.1.20.11 节“生成的不可见主键”。