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:      ᴺᵁᴸᴸ