Returns information about table columns.
Syntax
DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]The DESCRIBE statement returns a row for each table column with the following String values:
name— A column name.type— A column type.default_type— A clause that is used in the column default expression:DEFAULT,MATERIALIZEDorALIAS. If there is no default expression, then empty string is returned.default_expression— An expression specified after theDEFAULTclause.comment— A column comment.codec_expression— A codec that is applied to the column.ttl_expression— A TTL expression.is_subcolumn— A flag that equals1for internal subcolumns. It is included into the result only if subcolumn description is enabled by the describe_include_subcolumns setting.
All columns in Nested data structures are described separately. The name of each column is prefixed with a parent column name and a dot.
To show internal subcolumns of other data types, use the describe_include_subcolumns setting.
Example
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;┌─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) │ │ │ │ │ │
└──────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘The second query additionally shows subcolumns:
┌─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 │
└───────────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┴──────────────┘The DESCRIBE statement can also be used with subqueries or scalar expressions:
DESCRIBE SELECT 1 FORMAT TSV;or
DESCRIBE (SELECT 1) FORMAT TSV;1 UInt8This usage returns metadata about the result columns of the specified query or subquery. It is useful for understanding the structure of complex queries before execution.
See Also
- describe_include_subcolumns setting.