Skip to main content

system.columns

Содержит информацию о столбцах всех таблиц.

С помощью этой таблицы можно получить информацию аналогично запросу DESCRIBE TABLE, но для многих таблиц сразу.

Колонки временных таблиц содержатся в system.columns только в тех сессиях, в которых эти таблицы были созданы. Поле database у таких колонок пустое.

Cтолбцы:

  • 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) — размер засечек в байтах.
  • comment (String) — комментарий к столбцу или пустая строка.
  • is_in_partition_key (UInt8) — флаг, показывающий включение столбца в ключ партиционирования.
  • is_in_sorting_key (UInt8) — флаг, показывающий включение столбца в ключ сортировки.
  • is_in_primary_key (UInt8) — флаг, показывающий включение столбца в первичный ключ.
  • is_in_sampling_key (UInt8) — флаг, показывающий включение столбца в ключ выборки.
  • compression_codec (String) — имя кодека сжатия.
  • character_octet_length (Nullable(UInt64)) — максимальная длина в байтах для двоичных данных, символьных данных или текстовых данных и изображений. В ClickHouse имеет смысл только для типа данных FixedString. Иначе возвращается значение NULL.
  • numeric_precision (Nullable(UInt64)) — точность приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. В ClickHouse это разрядность для целочисленных типов и десятичная точность для типов Decimal. Иначе возвращается значение NULL.
  • numeric_precision_radix (Nullable(UInt64)) — основание системы счисления точности приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. В ClickHouse значение столбца равно 2 для целочисленных типов и 10 — для типов Decimal. Иначе возвращается значение NULL.
  • numeric_scale (Nullable(UInt64)) — масштаб приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. В ClickHouse имеет смысл только для типов Decimal. Иначе возвращается значение NULL.
  • datetime_precision (Nullable(UInt64)) — десятичная точность для данных типа DateTime64. Для других типов данных возвращается значение NULL.

Пример

SELECT * FROM system.columns LIMIT 2 FORMAT Vertical;
Row 1:
──────
database: INFORMATION_SCHEMA
table: COLUMNS
name: table_catalog
type: String
position: 1
default_kind:
default_expression:
data_compressed_bytes: 0
data_uncompressed_bytes: 0
marks_bytes: 0
comment:
is_in_partition_key: 0
is_in_sorting_key: 0
is_in_primary_key: 0
is_in_sampling_key: 0
compression_codec:
character_octet_length: ᴺᵁᴸᴸ
numeric_precision: ᴺᵁᴸᴸ
numeric_precision_radix: ᴺᵁᴸᴸ
numeric_scale: ᴺᵁᴸᴸ
datetime_precision: ᴺᵁᴸᴸ

Row 2:
──────
database: INFORMATION_SCHEMA
table: COLUMNS
name: table_schema
type: String
position: 2
default_kind:
default_expression:
data_compressed_bytes: 0
data_uncompressed_bytes: 0
marks_bytes: 0
comment:
is_in_partition_key: 0
is_in_sorting_key: 0
is_in_primary_key: 0
is_in_sampling_key: 0
compression_codec:
character_octet_length: ᴺᵁᴸᴸ
numeric_precision: ᴺᵁᴸᴸ
numeric_precision_radix: ᴺᵁᴸᴸ
numeric_scale: ᴺᵁᴸᴸ
datetime_precision: ᴺᵁᴸᴸ