### 26.3.8 信息\_SCHEMA 列表 [](<>) 这[`列`](information-schema-columns-table.html)table 提供有关表中列的信息。相关的[`ST_GEOMETRY_COLUMNS`](information-schema-st-geometry-columns-table.html)table 提供有关存储空间数据的表列的信息。看[第 26.3.35 节,“信息\_架构 ST\_几何学\_列表”](information-schema-st-geometry-columns-table.html). 这[`列`](information-schema-columns-table.html)表有这些列: - `表目录` 包含该列的表所属的目录的名称。这个值总是`定义`. - `TABLE_SCHEMA` 包含该列的表所属的架构(数据库)的名称。 - `TABLE_NAME` 包含列的表的名称。 - `COLUMN_NAME` 列的名称。 - `ORDINAL_POSITION` 列在表中的位置。`ORDINAL_POSITION`是必要的,因为你可能想说`ORDER BY ORDINAL_POSITION`.不像[`显示列`](show-columns.html),[`选择`](select.html)来自[`列`](information-schema-columns-table.html)表没有自动排序。 - `COLUMN_DEFAULT` 列的默认值。这是`空值`如果该列具有显式默认值`空值`,或者如果列定义包含 no`默认`条款。 - `IS_NULLABLE` 列可空性。值为`是的`如果`空值`值可以存储在列中,`不`如果不。 - `数据类型` 列数据类型。 这`数据类型`value 只是类型名称,没有其他信息。这`COLUMN_TYPE`value 包含类型名称和可能的其他信息,例如精度或长度。 - `CHARACTER_MAXIMUM_LENGTH` 对于字符串列,以字符为单位的最大长度。 - `CHARACTER_OCTET_LENGTH` 对于字符串列,最大长度(以字节为单位)。 - `NUMERIC_PRECISION` 对于数值列,数值精度。 - `NUMERIC_SCALE` 对于数字列,数字刻度。 - `DATETIME_PRECISION` 对于时间列,小数秒精度。 - `CHARACTER_SET_NAME` 对于字符串列,字符集名称。 - `COLLATION_NAME` 对于字符串列,排序规则名称。 - `COLUMN_TYPE` 列数据类型。 这`数据类型`value 只是类型名称,没有其他信息。这`COLUMN_TYPE`value 包含类型名称和可能的其他信息,例如精度或长度。 - `COLUMN_KEY` 列是否被索引: - 如果`COLUMN_KEY`为空,则该列没有索引,或者仅作为多列、非唯一索引中的辅助列进行索引。 - 如果`COLUMN_KEY`是`PRI`,该列是`首要的关键`或者是多列中的列之一`首要的关键`. - 如果`COLUMN_KEY`是`统一`, 该列是 a 的第一列`独特`指数。(一种`独特`索引允许多个`空值`值,但您可以判断该列是否允许`空值`通过检查`空值`柱子。) - 如果`COLUMN_KEY`是`穆尔`,该列是非唯一索引的第一列,其中允许在该列中多次出现给定值。 如果超过一个`COLUMN_KEY`值适用于表的给定列,`COLUMN_KEY`按顺序显示具有最高优先级的那个`PRI`, `统一`, `穆尔`. 一种`独特`索引可以显示为`PRI`如果它不能包含`空值`价值观,没有`首要的关键`在表中。一种`独特`索引可能显示为`穆尔`如果几列形成一个组合`独特`指数;尽管列的组合是唯一的,但每列仍然可以包含给定值的多次出现。 - `额外的` 有关给定列的任何其他可用信息。在这些情况下,该值是非空的: [](<>) - `自动递增`对于具有`自动递增`属性。 - `在更新 CURRENT_TIMESTAMP`为了[`时间戳`](datetime.html)要么[`约会时间`](datetime.html)具有`ON UPDATE CURRENT_TIMESTAMP`属性。 - `存储生成`要么`虚拟生成`对于生成的列。 - `DEFAULT_GENERATED`对于具有表达式默认值的列。 - `特权` 您对该列的权限。 - `COLUMN_COMMENT` 列定义中包含的任何注释。 - `GENERATION_EXPRESSION` [](<>) 对于生成的列,显示用于计算列值的表达式。未生成的列为空。有关生成的列的信息,请参阅[第 13.1.20.8 节,“创建表和生成的列”](create-table-generated-columns.html). - `SRS_ID` 此值适用于空间列。它包含列`SRID`指示存储在列中的值的空间参考系统的值。看[第 11.4.1 节,“空间数据类型”](spatial-type-overview.html), 和[第 11.4.5 节,“空间参考系统支持”](spatial-reference-systems.html).值为`空值`对于非空间列和没有空间列`SRID`属性。 #### 笔记 - 在[`显示列`](show-columns.html), 这`类型`显示包括来自几个不同的值[`列`](information-schema-columns-table.html)列。 - `CHARACTER_OCTET_LENGTH`应该是一样的`CHARACTER_MAXIMUM_LENGTH`, 多字节字符集除外。 - `CHARACTER_SET_NAME`可以从`COLLATION_NAME`.例如,如果你说`显示来自 t 的完整列`,你在`COLLATION_NAME`列的值`utf8_swedish_ci`,字符集是第一个下划线之前的内容:`utf8`. 列信息也可从[`显示列`](show-columns.html)陈述。看[第 13.7.7.5 节,“显示列语句”](show-columns.html).以下语句几乎是等价的: ``` 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'] ```