メインコンテンツまでスキップ
に最終更新

DESCRIBE

説明​

このステートメントは、指定したテーブルのスキーマ情報を表示します。

構文​

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

必須パラメータ​

1.<table_name>

テーブルの識別子(名前)を指定します。同じデータベース内で一意である必要があります。

識別子は英字(Unicode 名のサポートが有効な場合は任意の言語の文字)で始まる必要があります。識別子全体をバッククォートで囲む場合(例:My Object)を除き、空白や特殊文字は使用できません。

予約語は識別子として使用できません。

詳細については、識別子の要件と予約語を参照してください。

省略可能なパラメータ​

1.<ctl_name>.<db_name>

データカタログとデータベースの識別子(名前)を指定します。

識別子は英字(Unicode 名のサポートが有効な場合は任意の言語の文字)で始まる必要があります。識別子全体をバッククォートで囲む場合(例:My Database)を除き、空白や特殊文字は使用できません。

予約語は識別子として使用できません。

詳細については、識別子の要件と予約語を参照してください。

2.ALL

内部テーブルにのみ指定できます。内部テーブルのすべてのインデックス情報を返します。

戻り値​

ALL を指定しない場合、以下の列を返します。

列説明
Fieldカラム名
Typeデータ型
NullNULL 値を許可するかどうか
Keyキーカラムかどうか
Defaultデフォルト値
Extra追加情報を表示

バージョン 3.0.7 で、セッション変数 show_column_comment_in_describe が追加されました。true に設定すると、カラムのコメント情報を表示する Comment 列が追加されます。

内部テーブルに対して ALL を指定した場合、以下の列を返します。

列説明
IndexNameテーブル名
IndexKeysTypeテーブルモデル
Fieldカラム名
Typeデータ型
NullNULL 値を許可するかどうか
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 | | |
+------------+---------------+---------+-------------+--------------+------+-------+---------+-------+---------+------------+-------------+