Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

DESCRIBE TABLE

Возвращает сведения о столбцах таблицы.

Синтаксис

DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]

Оператор DESCRIBE возвращает по одной строке для каждого столбца таблицы со следующими значениями типа String:

  • name — имя столбца.
  • type — тип столбца.
  • default_type — конструкция, используемая в выражении столбца по умолчанию: DEFAULT, MATERIALIZED или ALIAS. Если выражение по умолчанию отсутствует, возвращается пустая строка.
  • default_expression — выражение, указанное после конструкции DEFAULT.
  • commentкомментарий столбца.
  • codec_expressionкодек, применяемый к столбцу.
  • ttl_expression — выражение TTL.
  • is_subcolumn — флаг, равный 1 для внутренних подстолбцов. Он включается в результат только если описание подстолбцов включено параметром describe_include_subcolumns.

Все столбцы в структурах данных Nested описываются отдельно. Имя каждого столбца начинается с имени родительского столбца и точки.

Чтобы показать внутренние подстолбцы других типов данных, используйте параметр describe_include_subcolumns.

Пример

Querysql
CREATE TABLE describe_example (
    id UInt64, text String DEFAULT 'unknown' CODEC(ZSTD),
    user Tuple (name String, age UInt8)
) ENGINE = MergeTree() ORDER BY id;

DESCRIBE TABLE describe_example;
DESCRIBE TABLE describe_example SETTINGS describe_include_subcolumns=1;
Responsetext
┌─name─┬─type──────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ id   │ UInt64                        │              │                    │         │                  │                │
│ text │ String                        │ DEFAULT      │ 'unknown'          │         │ ZSTD(1)          │                │
│ user │ Tuple(name String, age UInt8) │              │                    │         │                  │                │
└──────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

Второй запрос также показывает подстолбцы:

Responsetext
┌─name──────┬─type──────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┬─is_subcolumn─┐
│ id        │ UInt64                        │              │                    │         │                  │                │            0 │
│ text      │ String                        │ DEFAULT      │ 'unknown'          │         │ ZSTD(1)          │                │            0 │
│ user      │ Tuple(name String, age UInt8) │              │                    │         │                  │                │            0 │
│ user.name │ String                        │              │                    │         │                  │                │            1 │
│ user.age  │ UInt8                         │              │                    │         │                  │                │            1 │
└───────────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┴──────────────┘

Оператор DESCRIBE также можно использовать с подзапросами и скалярными выражениями:

DESCRIBE SELECT 1 FORMAT TSV;

или

DESCRIBE (SELECT 1) FORMAT TSV;
Responsetext
1       UInt8

В этом случае возвращаются метаданные о столбцах результата указанного запроса или подзапроса. Это полезно для понимания структуры сложных запросов до их выполнения.

См. также

Navigation