columns
Contains information about columns in all the tables.
You can use this table to get information similar to the DESCRIBE TABLE query, but for multiple tables at once.
Columns from temporary tables are visible in the system.columns
only in those session where they have been created. They are shown with the empty database
field.
The system.columns
table contains the following columns (the column type is shown in brackets):
database
(String) — Database name.table
(String) — Table name.name
(String) — Column name.type
(String) — Column type.position
(UInt64) — Ordinal position of a column in a table starting with 1.default_kind
(String) — Expression type (DEFAULT
,MATERIALIZED
,ALIAS
) for the default value, or an empty string if it is not defined.default_expression
(String) — Expression for the default value, or an empty string if it is not defined.data_compressed_bytes
(UInt64) — The size of compressed data, in bytes.data_uncompressed_bytes
(UInt64) — The size of decompressed data, in bytes.marks_bytes
(UInt64) — The size of marks, in bytes.comment
(String) — Comment on the column, or an empty string if it is not defined.is_in_partition_key
(UInt8) — Flag that indicates whether the column is in the partition expression.is_in_sorting_key
(UInt8) — Flag that indicates whether the column is in the sorting key expression.is_in_primary_key
(UInt8) — Flag that indicates whether the column is in the primary key expression.is_in_sampling_key
(UInt8) — Flag that indicates whether the column is in the sampling key expression.compression_codec
(String) — Compression codec name.character_octet_length
(Nullable(UInt64)) — Maximum length in bytes for binary data, character data, or text data and images. In ClickHouse makes sense only forFixedString
data type. Otherwise, theNULL
value is returned.numeric_precision
(Nullable(UInt64)) — Accuracy of approximate numeric data, exact numeric data, integer data, or monetary data. In ClickHouse it is bit width for integer types and decimal precision forDecimal
types. Otherwise, theNULL
value is returned.numeric_precision_radix
(Nullable(UInt64)) — The base of the number system is the accuracy of approximate numeric data, exact numeric data, integer data or monetary data. In ClickHouse it's 2 for integer types and 10 forDecimal
types. Otherwise, theNULL
value is returned.numeric_scale
(Nullable(UInt64)) — The scale of approximate numeric data, exact numeric data, integer data, or monetary data. In ClickHouse makes sense only forDecimal
types. Otherwise, theNULL
value is returned.datetime_precision
(Nullable(UInt64)) — Decimal precision ofDateTime64
data type. For other data types, theNULL
value is returned.
Example
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: ᴺᵁᴸᴸ