24.5 INFORMATION_SCHEMA COLUMNStable

COLUMNStable 提供有关 table 中列的信息。

COLUMNStable 具有以下列:

包含该列的 table 所属的目录的名称。此值始终为def

包含该列的 table 所属的架构(数据库)的名称。

包含列的 table 的名称。

列的名称。

table 格在 table 格中的位置。 ORDINAL_POSITION是必需的,因为您可能想说ORDER BY ORDINAL_POSITION。不同于COLUMNStable 中的SHOW COLUMNSSELECT没有自动排序。

列的默认值。如果列的显式默认值为NULL,或者列定义不包含DEFAULT子句,则为NULL

列的可空性。如果可以将NULL个值存储在列中,则值为YES,否则不能为NO

列数据类型。

DATA_TYPE值是类型名称,没有其他信息。 COLUMN_TYPE值包含类型名称以及可能的其他信息,例如精度或长度。

对于字符串列,以字符为单位的最大长度。

对于字符串列,最大长度以字节为单位。

对于数字列,数字精度。

对于数字列,数字刻度。

对于时间列,分数秒精度。

对于字符串列,字符集名称。

对于字符串列,归类名称。

列数据类型。

DATA_TYPE值是类型名称,没有其他信息。 COLUMN_TYPE值包含类型名称以及可能的其他信息,例如精度或长度。

列是否被索引:

如果多个COLUMN_KEY值应用于 table 的给定列,则COLUMN_KEYPRIUNIMUL的 Sequences 显示优先级最高的那个。

如果UNIQUE索引不能包含NULL值并且 table 中没有PRIMARY KEY,则它可能显示为PRI。如果几列构成复合UNIQUE索引,则UNIQUE索引可能显示为MUL;尽管各列的组合是唯一的,但各列仍可以容纳多次出现的给定值。

有关给定列的任何其他可用信息。在以下情况下,该值是非空的:

您具有该列的特权。

列定义中包含的任何 Comments。

对于生成的列,显示用于计算列值的 table 达式。对于未生成的列为空。有关生成的列的信息,请参见第 13.1.18.7 节“创建 table 和生成的列”

Notes

SHOW COLUMNS语句也提供列信息。参见第 13.7.5.5 节“ 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']
首页