Renvoie des informations sur les colonnes d’une table.
Syntaxe
DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]
L’instruction DESCRIBE renvoie une ligne pour chaque colonne de la table, avec les valeurs String suivantes :
name — Un nom de colonne.
type — Un type de colonne.
default_type — Une clause utilisée dans l’expression par défaut de la colonne : DEFAULT, MATERIALIZED ou ALIAS. S’il n’y a pas d’expression par défaut, une chaîne vide est renvoyée.
default_expression — Une expression spécifiée après la clause DEFAULT.
comment — Un commentaire de colonne.
codec_expression — Un codec appliqué à la colonne.
ttl_expression — Une expression TTL.
is_subcolumn — Un indicateur égal à 1 pour les sous-colonnes internes. Il n’est inclus dans le résultat que si la description des sous-colonnes est activée par le paramètre describe_include_subcolumns.
Toutes les colonnes des structures de données Nested sont décrites séparément. Le nom de chaque colonne est préfixé par le nom de la colonne parente, suivi d’un point.
Pour afficher les sous-colonnes internes d’autres types de données, utilisez le paramètre describe_include_subcolumns.
Exemple
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) │ │ │ │ │ │
└──────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
La deuxième requête affiche également des sous-colonnes :
┌─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 │
└───────────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┴──────────────┘
L’instruction DESCRIBE peut également être utilisée avec des sous-requêtes ou des expressions scalaires :
DESCRIBE SELECT 1 FORMAT TSV;
ou
DESCRIBE (SELECT 1) FORMAT TSV;
Cette utilisation permet de renvoyer des métadonnées sur les colonnes de résultat de la requête ou de la sous-requête spécifiée. Elle est utile pour comprendre la structure de requêtes complexes avant leur exécution.
Voir aussi
Dernière modification le 25 juin 2026