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 节“生成的不可见主键”。