You need to enable JavaScript to run this app.
导航
system.columns
最近更新时间:2025.10.31 15:37:27首次发布时间:2025.10.31 15:37:27
复制全文
我的收藏
有用
有用
无用
无用

系统表 system.columns 包含所有列的信息,涵盖列的类型、位置、键关联、压缩状态等元数据,可用于查看表结构细节、分析列存储特征。

列名

字段名称

数据类型

字段含义说明

database

String

列所属的数据库名称。

table

String

列所属的表名称。

name

String

列的名称。

type

String

列的数据类型。

position

UInt64

列在表中的顺序位置,从 1 开始。

default_kind

String

列默认值的表达式类型,取值包括 DEFAULT、MATERIALIZED、ALIAS。如果未定义,则为空字符串。

default_expression

String

列默认值的具体表达式,如果未定义,则为空字符串。

data_compressed_bytes

UInt64

列压缩后的数据大小,以字节为单位。

data_uncompressed_bytes

UInt64

列解压后的数据大小,以字节为单位。

marks_bytes

UInt64

列的标记(mark)数据大小,以字节为单位。

comment

String

列的注释文本,如果没有定义,则为空字符串。

is_in_partition_key

UInt8

列是否包含在表的分区键表达式中:

  • 1 = 是(参与分区逻辑);
  • 0 = 否。

is_in_sorting_key

UInt8

列是否包含在表的排序键表达式中:

  • 1 = 是(参与数据排序);
  • 0 = 否。

is_in_primary_key

UInt8

列是否包含在表的主键表达式中:

  • 1 = 是(用于唯一标识数据行);
  • 0 = 否。

is_in_sampling_key

UInt8

列是否包含在表的采样键表达式中:

  • 1 = 是(参与数据采样逻辑);
  • 0 = 否。

compression_codec

String

列使用的压缩编码名称。

character_octet_length

Nullable(UInt64)

二进制数据、字符数据或文本数据和图像的最大长度,单位为字节。在 ByteHouse 中仅对 FixedString 数据类型有效,其他类型返回 NULL 值。

numeric_precision

Nullable(UInt64)

近似数值数据、精确数值数据、整数数据或货币数据的精度。在 ByteHouse 中,它是整数类型的位宽,以及 Decimal 类型的十进制精度,其他类型返回 NULL 值。

numeric_precision_radix

Nullable(UInt64)

数字系统的基数,表示近似数值数据、精确数值数据、整数数据或货币数据的精度。在 ByteHouse 中,整数类型为 2, Decimal 类型为 10,其他类型返回 NULL 值。

numeric_scale

Nullable(UInt64)

近似数值数据、精确数值数据、整数数据或货币数据的刻度。在 ByteHouse 中,仅对 Decimal 类型有意义,其他类型返回 NULL 值。

datetime_precision

Nullable(UInt64)

DateTime64 数据类型的十进制精度。其他数据类型返回 NULL 值。

示例

查询表 sales_db.order_details 的列信息,且只取关键字段:

SELECT 
  name AS column_name,
  type AS column_type,
  is_in_primary_key, 
  is_in_partition_key,
  default_kind 
FROM system.columns 
WHERE database = 'sales_db' 
  AND table = 'order_details' 
ORDER BY position; 

查询结果示例:
Image