본문으로 건너뛰기
최종 수정: 에

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데이터 타입
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 명령을 실행하는 사용자는 최소한 다음 권한이 있어야 합니다.

권한(Privilege)객체참고
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 | | |
+------------+---------------+---------+-------------+--------------+------+-------+---------+-------+---------+------------+-------------+