COLUMNS

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime 10.2 及更高版本 check marked yes 仅限 Unity Catalog

INFORMATION_SCHEMA.COLUMNS 描述目录中表和视图(关系)的列。

返回的行仅限于用户有权与之交互的关系。

定义

COLUMNS 关系包含以下列:

名称 数据类型 Nullable 标准 描述
TABLE_CATALOG STRING 包含关系的目录。
TABLE_SCHEMA STRING 包含关系的架构。
TABLE_NAME STRING 列所属关系的名称。
COLUMN_NAME STRING 列的名称。
ORDINAL_POSITION INTEGER 列在关系中的位置(从 1 开始编号)。
COLUMN_DEFAULT STRING 如果未在 INSERT 中指定列,则使用默认值;如果未定义,则使用 NULL
IS_NULLABLE STRING 如果列可为空,为 YES;否则为 NO
DATA_TYPE STRING 列的简单数据类型名称,或 STRUCT,或 ARRAY
FULL_DATA_TYPE STRING 列定义中指定的数据类型。
CHARACTER_MAXIMUM_LENGTH INTEGER 始终为 NULL,保留以供将来使用。
CHARACTER_OCTET_LENGTH STRING 始终为 NULL,保留以供将来使用。
NUMERIC_PRECISION INTEGER 对于 base-2 整数类型、FLOATDOUBLE,为支持的位数。 对于 DECIMAL,为位数;否则为 NULL
NUMERIC_PRECISION_RADIX INTEGER 对于 DECIMAL,为 10;对于所有其他数字类型,为 2;否则为 NULL
NUMERIC_SCALE INTEGER 对于整数类型,为 0;对于 DECIMAL,为小数点右侧的位数;否则为 NULL
DATETIME_PRECISION INTEGER 对于 DATE,为 0;对于 TIMESTAMPINTERVALSECOND,为 3;对于其他任何 INTERVAL,为 0;否则为 NULL
INTERVAL_TYPE STRING 对于 INTERVAL,为间隔的单位部分,例如 'YEAR TO MONTH';否则为 NULL
INTERVAL_PRECISION INTERAL 始终为 NULL,保留以供将来使用。
MAXIMUM_CARDINALITY INTEGER 始终为 NULL,保留以供将来使用。
IS_IDENTITY STRING 始终为“NO”,保留以供将来使用。
IDENTITY_GENERATION STRING 始终为 NULL,保留以供将来使用。
IDENTITY_START STRING 始终为 NULL,保留以供将来使用。
IDENTITY_INCREMENT STRING 始终为 NULL,保留以供将来使用。
IDENTITY_MAXIMUM STRING 始终为 NULL,保留以供将来使用。
IDENTITY_MINIMUM STRING 始终为 NULL,保留以供将来使用。
IDENTITY_CYCLE STRING 始终为 NULL,保留以供将来使用。
IS_GENERATED STRING 始终为 NULL,保留以供将来使用。
GENERATION_EXPRESSION STRING 始终为 NULL,保留以供将来使用。
IS_SYSTEM_TIME_PERIOD_START STRING 始终为 NO,保留以供将来使用。
IS_SYSTEM_TIME_PERIOD_END STRING 始终为 NO,保留以供将来使用。
SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION STRING 始终为 NULL,保留以供将来使用。
IS_UPDATABLE STRING 如果列是可更新的,为 YES;否则为 NO
PARTITION_ORDINAL_POSITION INTEGER 列在分区中的位置(从 1 开始编号);如果不是分区依据列,则为 NULL
COMMENT STRING 列的可选描述。

约束

以下约束适用于 COLUMNS 关系:

名称 列列表 描述
主密钥 COLUMNS_PK TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAME 列的唯一标识符。
唯一键 COLUMNS_UK TABLE_CATALOGTABLE_SCHEMATABLE_NAMEORDINAL_POSITION 列的唯一标识符。
外键 COLUMN_TABLES_FK TABLE_CATALOGTABLE_SCHEMATABLE_NAME 引用 TABLES

示例

> SELECT ordinal_position, column_name, data_type
    FROM information_schema.tables
    WHERE table_schema = 'information_schema'
      AND table_name = 'catalog_privilges'
    ORDER BY ordinal_position;
  1  grantor        STRING
  2  grantee        STRING
  3  catalog_name   STRING
  4  privilege_type STRING
  5  is_grantable   STRING