Перейти к содержимому
Последнее обновление

DESCRIBE

Описание​

Этот оператор выводит информацию о схеме указанной таблицы.

Синтаксис​

DESC[RIBE] [<ctl_name>.][<db_name>.]<table_name> [ALL];

Обязательные параметры​

1.<table_name>

Указывает идентификатор (то есть имя) таблицы, который должен быть уникальным в пределах её базы данных.

Идентификатор должен начинаться с буквы (или символа любого языка, если включена поддержка имён Unicode) и не может содержать пробелы или специальные символы, если только вся строка идентификатора не заключена в обратные кавычки (например, My Object).

В качестве идентификатора нельзя использовать зарезервированные ключевые слова.

Подробности см. в требованиях к идентификаторам и перечне зарезервированных ключевых слов.

Необязательные параметры​

1.<ctl_name>.<db_name>

Указывает идентификаторы (то есть имена) Catalog и базы данных.

Идентификатор должен начинаться с буквы (или символа любого языка, если включена поддержка имён Unicode) и не может содержать пробелы или специальные символы, если только вся строка идентификатора не заключена в обратные кавычки (например, My Database).

В качестве идентификатора нельзя использовать зарезервированные ключевые слова.

Подробности см. в требованиях к идентификаторам и перечне зарезервированных ключевых слов.

2.ALL

Применим только к внутренним таблицам. Возвращает информацию обо всех индексах внутренних таблиц.

Возвращаемое значение​

Если ALL не указан, возвращается следующий результат:

СтолбецОписание
FieldИмя столбца
TypeТип данных
NullДопускаются ли значения NULL
KeyЯвляется ли столбец ключевым
DefaultЗначение по умолчанию
ExtraДополнительная информация

В версии 3.0.7 добавлена новая переменная сеанса show_column_comment_in_describe. Если она установлена в true, в результат добавляется столбец Comment с комментариями к столбцам.

Если указан ALL, для внутренних таблиц возвращается следующий результат:

СтолбецОписание
IndexNameИмя таблицы
IndexKeysTypeМодель таблицы
FieldИмя столбца
TypeТип данных
NullДопускаются ли значения NULL
KeyЯвляется ли столбец ключевым
DefaultЗначение по умолчанию
ExtraДополнительная информация
VisibleЯвляется ли столбец видимым
DefineExprВыражение определения
WhereClauseОпределения, связанные с условием фильтрации

Управление правами доступа​

Пользователи, выполняющие эту команду SQL, должны иметь как минимум следующие права:

Право (привилегия)ОбъектПримечания
SELECT_PRIVТаблицаДля выполнения DESC необходимо право SELECT_PRIV на запрашиваемую таблицу

Примеры​

Подготовка: создайте таблицу test_table для примеров ниже:

CREATE TABLE test_table (
user_id BIGINT NOT NULL COMMENT 'Key1',
name VARCHAR(20) COMMENT 'username',
age INT COMMENT 'user_age'
) ENGINE=OLAP
UNIQUE KEY (user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 1
PROPERTIES ("replication_num" = "1");
  1. Вывод схемы базовой таблицы
DESC test_table;
+---------+-------------+------+-------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-------+---------+-------+
| user_id | bigint | No | true | NULL | |
| name | varchar(20) | Yes | false | NULL | NONE |
| age | int | Yes | false | NULL | NONE |
+---------+-------------+------+-------+---------+-------+

Установите show_column_comment_in_describe = true (параметр появился в версии 3.0.7), чтобы добавить в вывод столбец Comment:

SET show_column_comment_in_describe=true;
DESC test_table;
+---------+-------------+------+-------+---------+-------+----------+
| Field | Type | Null | Key | Default | Extra | Comment |
+---------+-------------+------+-------+---------+-------+----------+
| user_id | bigint | No | true | NULL | | Key1 |
| name | varchar(20) | Yes | false | NULL | NONE | username |
| age | int | Yes | false | NULL | NONE | user_age |
+---------+-------------+------+-------+---------+-------+----------+
  1. Вывод схемы всех индексов таблицы
DESC test_table ALL;
+------------+---------------+---------+-------------+--------------+------+-------+---------+-------+---------+------------+-------------+
| IndexName | IndexKeysType | Field | Type | InternalType | Null | Key | Default | Extra | Visible | DefineExpr | WhereClause |
+------------+---------------+---------+-------------+--------------+------+-------+---------+-------+---------+------------+-------------+
| test_table | UNIQUE_KEYS | user_id | bigint | bigint | No | true | NULL | | true | | |
| | | name | varchar(20) | varchar(20) | Yes | false | NULL | NONE | true | | |
| | | age | int | int | Yes | false | NULL | NONE | true | | |
+------------+---------------+---------+-------------+--------------+------+-------+---------+-------+---------+------------+-------------+