文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  INFORMATION_SCHEMA COLUMNS 表

28.3.8 INFORMATION_SCHEMA COLUMNS 表

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_KEYPRI,则该列为 PRIMARY KEY 或多列 PRIMARY KEY 中的一列。

    • 如果 COLUMN_KEYUNI,则该列是 UNIQUE 索引的第一列。 (UNIQUE 索引允许多个 NULL 值,但您可以通过检查 Null 列来判断该列是否允许 NULL。)

    • 如果 COLUMN_KEYMUL,则该列是非唯一索引的第一列,在该索引中,列中允许出现给定值的多次出现。

    如果多个 COLUMN_KEY 值适用于表的给定列,则 COLUMN_KEY 将按照 PRIUNIMUL 的顺序显示优先级最高的值。

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

  • EXTRA

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

    • 对于具有 AUTO_INCREMENT 属性的列,为 auto_increment

    • 对于具有 ON UPDATE CURRENT_TIMESTAMP 属性的 TIMESTAMPDATETIME 列,为 on update CURRENT_TIMESTAMP

    • 对于生成的列,为 STORED GENERATEDVIRTUAL GENERATED

    • 对于具有表达式默认值的列,为 DEFAULT_GENERATED

  • 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 相同,但多字节字符集除外。

  • 可以从 COLLATION_NAME 推导出 CHARACTER_SET_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 节,“生成的不可见主键”