본문으로 바로가기
본문으로 바로가기

SHOW SQL 문

참고

SHOW CREATE (TABLE|DATABASE|USER)는 다음 설정이 활성화되어 있지 않으면 비밀 정보를 숨깁니다:

또한 사용자에게는 displaySecretsInShowAndSelect 권한이 있어야 합니다.

SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE

이 SQL 문들은 지정된 객체를 생성할 때 사용된 CREATE 쿼리가 포함된 String 타입의 단일 컬럼을 반환합니다.

구문

SHOW [CREATE] TABLE | TEMPORARY TABLE | DICTIONARY | VIEW | DATABASE [db.]table|view [INTO OUTFILE filename] [FORMAT format]
참고

이 구문으로 system 테이블의 CREATE 쿼리를 조회하면, 테이블 구조만 선언하고 실제 테이블을 생성하는 데에는 사용할 수 없는 가짜 쿼리가 반환됩니다.

SHOW DATABASES

이 문은 모든 데이터베이스 목록을 출력합니다.

구문

SHOW DATABASES [[NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]

다음 쿼리와 동일합니다:

SELECT name FROM system.databases [WHERE name [NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]

예시

이 예시에서는 이름에 문자열 'de'가 포함된 데이터베이스 이름을 조회하기 위해 SHOW를 사용합니다:

SHOW DATABASES LIKE '%de%'
┌─name────┐
│ default │
└─────────┘

대소문자를 구분하지 않고도 수행할 수 있습니다:

SHOW DATABASES ILIKE '%DE%'
┌─name────┐
│ default │
└─────────┘

또는 이름에 'de'가 포함되지 않은 데이터베이스 이름을 조회합니다:

SHOW DATABASES NOT LIKE '%de%'
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ system                         │
│ test                           │
│ tutorial                       │
└────────────────────────────────┘

마지막으로, 처음 두 개의 데이터베이스 이름만 가져올 수 있습니다.

SHOW DATABASES LIMIT 2
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default                        │
└────────────────────────────────┘

함께 보기

SHOW TABLES

SHOW TABLES 문은 테이블 목록을 표시합니다.

구문

SHOW [FULL] [TEMPORARY] TABLES [{FROM | IN} <db>] [[NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

FROM 절을 지정하지 않으면 쿼리는 현재 데이터베이스의 테이블 목록을 반환합니다.

이 구문은 다음 쿼리와 동일합니다.

SELECT name FROM system.tables [WHERE name [NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

예시

이 예제에서는 SHOW TABLES 문을 사용하여 이름에 'user'가 포함된 모든 테이블을 찾습니다.

SHOW TABLES FROM system LIKE '%user%'
┌─name─────────────┐
│ user_directories │
│ users            │
└──────────────────┘

대소문자를 구분하지 않는 방식으로도 할 수 있습니다:

SHOW TABLES FROM system ILIKE '%USER%'
┌─name─────────────┐
│ user_directories │
│ users            │
└──────────────────┘

또는 이름에 문자 's'가 들어 있지 않은 테이블을 찾으려면:

SHOW TABLES FROM system NOT LIKE '%s%'
┌─name─────────┐
│ metric_log   │
│ metric_log_0 │
│ metric_log_1 │
└──────────────┘

마지막으로 처음 두 개 테이블의 이름만 조회합니다.

SHOW TABLES FROM system LIMIT 2
┌─name───────────────────────────┐
│ aggregate_function_combinators │
│ asynchronous_metric_log        │
└────────────────────────────────┘

관련 항목

SHOW COLUMNS

SHOW COLUMNS 문은 컬럼 목록을 표시합니다.

구문

SHOW [EXTENDED] [FULL] COLUMNS {FROM | IN} <table> [{FROM | IN} <db>] [{[NOT] {LIKE | ILIKE} '<pattern>' | WHERE <expr>}] [LIMIT <N>] [INTO
OUTFILE <filename>] [FORMAT <format>]

데이터베이스와 테이블 이름은 <db>.<table>과 같이 축약된 형식으로 지정할 수 있으며, 이는 FROM tab FROM dbFROM db.tab이 동일하다는 의미입니다. 데이터베이스가 지정되지 않은 경우, 쿼리는 현재 데이터베이스의 컬럼 목록을 반환합니다.

또한 EXTENDEDFULL 두 개의 선택적 키워드가 있습니다. EXTENDED 키워드는 현재 아무 효과도 없으며, MySQL 호환성을 위해 존재합니다. FULL 키워드는 출력에 정렬 규칙(collation), 주석(comment) 및 권한(privilege) 컬럼을 포함하도록 합니다.

SHOW COLUMNS 문은 다음과 같은 구조의 결과 테이블을 생성합니다:

ColumnDescriptionType
field컬럼의 이름String
type컬럼 데이터 타입입니다. 쿼리가 MySQL wire protocol(와이어 프로토콜)을 통해 수행된 경우, MySQL에서의 동등한 타입 이름이 표시됩니다.String
null컬럼 데이터 타입이 널 허용이면 YES, 그렇지 않으면 NOString
key컬럼이 기본 키의 일부이면 PRI, 정렬 키의 일부이면 SOR, 그 외의 경우 비어 있음String
default컬럼이 ALIAS, DEFAULT, 또는 MATERIALIZED 타입인 경우 컬럼의 기본 표현식, 그렇지 않으면 NULLNullable(String)
extra추가 정보로, 현재는 사용되지 않습니다String
collation(FULL 키워드가 지정된 경우에만) 컬럼의 정렬 규칙(collation)으로, ClickHouse는 컬럼 단위 정렬 규칙을 지원하지 않으므로 항상 NULLNullable(String)
comment(FULL 키워드가 지정된 경우에만) 컬럼에 대한 주석String
privilege(FULL 키워드가 지정된 경우에만) 해당 컬럼에 대해 보유한 권한으로, 현재는 표시되지 않습니다String

예시

이 예제에서는 SHOW COLUMNS 구문을 사용하여 'orders' 테이블의 모든 컬럼 정보를, 이름이 'delivery_'로 시작하는 컬럼부터 가져옵니다:

SHOW COLUMNS FROM 'orders' LIKE 'delivery_%'
┌─field───────────┬─type─────┬─null─┬─key─────┬─default─┬─extra─┐
│ delivery_date   │ DateTime │    0 │ PRI SOR │ ᴺᵁᴸᴸ    │       │
│ delivery_status │ Bool     │    0 │         │ ᴺᵁᴸᴸ    │       │
└─────────────────┴──────────┴──────┴─────────┴─────────┴───────┘

참고

SHOW DICTIONARIES

SHOW DICTIONARIES 문은 Dictionaries 목록을 표시합니다.

구문

SHOW DICTIONARIES [FROM <db>] [LIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

FROM 절을 지정하지 않으면 쿼리는 현재 데이터베이스의 딕셔너리 목록을 반환합니다.

다음과 같은 방식으로 SHOW DICTIONARIES 쿼리와 동일한 결과를 얻을 수 있습니다:

SELECT name FROM system.dictionaries WHERE database = <db> [AND name LIKE <pattern>] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

예시

다음 쿼리는 이름에 reg가 포함된 system 데이터베이스의 테이블 목록 중에서 처음 두 개의 행을 선택합니다.

SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2
┌─name─────────┐
│ regions      │
│ region_names │
└──────────────┘

SHOW INDEX

테이블의 프라이머리 키와 데이터 스키핑 인덱스 목록을 표시합니다.

이 구문은 주로 MySQL과의 호환성을 위해 제공됩니다. 시스템 테이블 system.tables (프라이머리 키용)과 system.data_skipping_indices (데이터 스키핑 인덱스용)은 동일한 정보를 제공하지만, ClickHouse에 보다 자연스러운 방식으로 제공합니다.

구문

SHOW [EXTENDED] {INDEX | INDEXES | INDICES | KEYS } {FROM | IN} <table> [{FROM | IN} <db>] [WHERE <expr>] [INTO OUTFILE <filename>] [FORMAT <format>]

데이터베이스와 테이블 이름은 <db>.<table> 형식으로 축약하여 지정할 수 있습니다. 즉, FROM tab FROM dbFROM db.tab은 동일합니다. 데이터베이스를 지정하지 않으면 쿼리는 현재 데이터베이스를 사용한다고 가정합니다.

선택적 키워드 EXTENDED는 현재 아무 효과도 없으며, MySQL 호환성을 위해 존재합니다.

이 구문은 다음과 같은 구조를 가진 결과 테이블을 생성합니다:

ColumnDescriptionType
table테이블 이름입니다.String
non_uniqueClickHouse는 고유성 제약 조건을 지원하지 않으므로 항상 1입니다.UInt8
key_name인덱스 이름입니다. 인덱스가 기본 키 인덱스인 경우 PRIMARY입니다.String
seq_in_index기본 키 인덱스의 경우, 컬럼의 위치(1부터 시작)입니다. 데이터 스키핑 인덱스의 경우에는 항상 1입니다.UInt8
column_name기본 키 인덱스의 경우, 컬럼 이름입니다. 데이터 스키핑 인덱스의 경우에는 ''(빈 문자열)이며, 「expression」 필드를 참조하십시오.String
collation인덱스에서 컬럼의 정렬 순서입니다. 오름차순이면 A, 내림차순이면 D, 정렬되지 않은 경우 NULL입니다.Nullable(String)
cardinality인덱스 카디널리티(인덱스 내 고유 값의 개수)에 대한 추정치입니다. 현재는 항상 0입니다.UInt64
sub_partClickHouse는 MySQL과 같은 인덱스 프리픽스를 지원하지 않으므로 항상 NULL입니다.Nullable(String)
packedClickHouse는 MySQL과 같은 packed 인덱스를 지원하지 않으므로 항상 NULL입니다.Nullable(String)
null현재 사용되지 않습니다.
index_type인덱스 유형입니다. 예를 들어 PRIMARY, MINMAX, BLOOM_FILTER 등입니다.String
comment인덱스에 대한 추가 정보입니다. 현재는 항상 ''(빈 문자열)입니다.String
index_commentClickHouse의 인덱스는 MySQL처럼 COMMENT 필드를 가질 수 없으므로 ''(빈 문자열)입니다.String
visible인덱스가 옵티마이저에 보이는 경우, 항상 YES입니다.String
expression데이터 스키핑 인덱스의 경우, 인덱스 표현식입니다. 기본 키 인덱스의 경우에는 ''(빈 문자열)입니다.String

예제

이 예제에서는 SHOW INDEX 구문을 사용하여 테이블 'tbl'의 모든 인덱스에 대한 정보를 얻습니다.

SHOW INDEX FROM 'tbl'
┌─table─┬─non_unique─┬─key_name─┬─seq_in_index─┬─column_name─┬─collation─┬─cardinality─┬─sub_part─┬─packed─┬─null─┬─index_type───┬─comment─┬─index_comment─┬─visible─┬─expression─┐
│ tbl   │          1 │ blf_idx  │ 1            │ 1           │ ᴺᵁᴸᴸ      │ 0           │ ᴺᵁᴸᴸ     │ ᴺᵁᴸᴸ   │ ᴺᵁᴸᴸ │ BLOOM_FILTER │         │               │ YES     │ d, b       │
│ tbl   │          1 │ mm1_idx  │ 1            │ 1           │ ᴺᵁᴸᴸ      │ 0           │ ᴺᵁᴸᴸ     │ ᴺᵁᴸᴸ   │ ᴺᵁᴸᴸ │ MINMAX       │         │               │ YES     │ a, c, d    │
│ tbl   │          1 │ mm2_idx  │ 1            │ 1           │ ᴺᵁᴸᴸ      │ 0           │ ᴺᵁᴸᴸ     │ ᴺᵁᴸᴸ   │ ᴺᵁᴸᴸ │ MINMAX       │         │               │ YES     │ c, d, e    │
│ tbl   │          1 │ PRIMARY  │ 1            │ c           │ A         │ 0           │ ᴺᵁᴸᴸ     │ ᴺᵁᴸᴸ   │ ᴺᵁᴸᴸ │ PRIMARY      │         │               │ YES     │            │
│ tbl   │          1 │ PRIMARY  │ 2            │ a           │ A         │ 0           │ ᴺᵁᴸᴸ     │ ᴺᵁᴸᴸ   │ ᴺᵁᴸᴸ │ PRIMARY      │         │               │ YES     │            │
│ tbl   │          1 │ set_idx  │ 1            │ 1           │ ᴺᵁᴸᴸ      │ 0           │ ᴺᵁᴸᴸ     │ ᴺᵁᴸᴸ   │ ᴺᵁᴸᴸ │ SET          │         │               │ YES     │ e          │
└───────┴────────────┴──────────┴──────────────┴─────────────┴───────────┴─────────────┴──────────┴────────┴──────┴──────────────┴─────────┴───────────────┴─────────┴────────────┘

참고 항목

SHOW PROCESSLIST

현재 처리 중인 쿼리 목록을 포함하는 system.processes 테이블의 내용을 출력합니다. SHOW PROCESSLIST 쿼리는 제외됩니다.

구문

SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]

SELECT * FROM system.processes 쿼리는 현재 실행 중인 모든 쿼리에 대한 데이터를 반환합니다.

콘솔에서 실행하십시오:

$ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"

SHOW GRANTS

SHOW GRANTS 문은 사용자의 권한을 표시합니다.

구문

SHOW GRANTS [FOR user1 [, user2 ...]] [WITH IMPLICIT] [FINAL]

사용자가 명시되지 않은 경우, 쿼리는 현재 사용자에 대한 권한을 반환합니다.

WITH IMPLICIT 수정자는 암시적으로 부여된 권한(예: GRANT SELECT ON system.one)을 표시합니다.

FINAL 수정자는 사용자와 해당 사용자에게 부여된 역할(상속 포함)에서 나온 모든 권한을 병합합니다.

SHOW CREATE USER

SHOW CREATE USER SQL 문은 사용자 생성에 사용된 매개변수를 보여줍니다.

구문

SHOW CREATE USER [name1 [, name2 ...] | CURRENT_USER]

SHOW CREATE ROLE

SHOW CREATE ROLE SQL 문은 역할(role) 생성에 사용된 매개변수를 표시합니다.

구문

SHOW CREATE ROLE name1 [, name2 ...]

SHOW CREATE ROW POLICY

SHOW CREATE ROW POLICY SQL 문은 ROW POLICY 생성 시 사용된 매개변수를 출력합니다.

구문

SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]

SHOW CREATE QUOTA

SHOW CREATE QUOTA SQL 문은 QUOTA를 생성할 때 사용된 매개변수를 표시합니다.

구문

SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]

SHOW CREATE SETTINGS PROFILE

SHOW CREATE SETTINGS PROFILE SQL 문은 SETTINGS PROFILE 생성 시 사용된 매개변수를 보여줍니다.

구문

SHOW CREATE [SETTINGS] PROFILE name1 [, name2 ...]

SHOW USERS

SHOW USERS 구문은 사용자 계정 이름 목록을 반환합니다. 사용자 계정의 매개변수를 확인하려면 시스템 테이블 system.users를 참조하십시오.

구문

SHOW USERS

SHOW ROLES

SHOW ROLES 구문은 roles 목록을 반환합니다. 추가 매개변수를 확인하려면 시스템 테이블 system.rolessystem.role_grants를 참조하십시오.

구문

SHOW [CURRENT|ENABLED] ROLES

SHOW PROFILES

SHOW PROFILES 문은 설정 프로필(setting profiles) 목록을 반환합니다. 사용자 계정 매개변수를 확인하려면 시스템 테이블 settings_profiles를 참조하십시오.

구문

SHOW [SETTINGS] PROFILES

SHOW POLICIES

SHOW POLICIES 문은 지정된 테이블에 대한 row 정책(행 정책) 목록을 반환합니다.
사용자 계정 매개변수를 확인하려면 시스템 테이블 system.row_policies를 조회하십시오.

구문

SHOW [ROW] POLICIES [ON [db.]table]

SHOW QUOTAS

SHOW QUOTAS 구문은 quotas 목록을 반환합니다. quotas의 매개변수를 확인하려면 시스템 테이블 system.quotas를 참조하십시오.

구문

SHOW QUOTAS

SHOW QUOTA

SHOW QUOTA 문은 모든 사용자 또는 현재 사용자에 대한 quota 사용량을 반환합니다.
다른 매개변수를 확인하려면 시스템 테이블 system.quotas_usagesystem.quota_usage를 참조하십시오.

구문

SHOW [CURRENT] QUOTA

SHOW ACCESS

SHOW ACCESS SQL 문은 모든 사용자, 역할, 프로필 등과 이들에 대한 모든 권한 부여(grant)를 보여줍니다.

문법

SHOW ACCESS

SHOW CLUSTER(S)

SHOW CLUSTER(S) 문은 클러스터 목록을 반환합니다. 사용 가능한 모든 클러스터는 system.clusters 테이블에 나열됩니다.

참고

SHOW CLUSTER name 쿼리는 지정한 클러스터 이름에 대해 system.clusters 테이블의 cluster, shard_num, replica_num, host_name, host_address, port 열을 표시합니다.

구문

SHOW CLUSTER '<name>'
SHOW CLUSTERS [[NOT] LIKE|ILIKE '<pattern>'] [LIMIT <N>]

예제

SHOW CLUSTERS;
┌─cluster──────────────────────────────────────┐
│ test_cluster_two_shards                      │
│ test_cluster_two_shards_internal_replication │
│ test_cluster_two_shards_localhost            │
│ test_shard_localhost                         │
│ test_shard_localhost_secure                  │
│ test_unavailable_shard                       │
└──────────────────────────────────────────────┘
SHOW CLUSTERS LIKE 'test%' LIMIT 1;
┌─cluster─────────────────┐
│ test_cluster_two_shards │
└─────────────────────────┘
SHOW CLUSTER 'test_shard_localhost' FORMAT Vertical;
Row 1:
──────
cluster:                 test_shard_localhost
shard_num:               1
replica_num:             1
host_name:               localhost
host_address:            127.0.0.1
port:                    9000

SHOW SETTINGS

SHOW SETTINGS 구문은 시스템 설정 목록과 각 설정 값들을 반환합니다. 해당 구문은 system.settings 테이블에서 데이터를 조회합니다.

구문

SHOW [CHANGED] SETTINGS LIKE|ILIKE <name>

LIKE|ILIKE는 설정 이름과 일치하는 패턴을 지정할 수 있게 합니다. 이 패턴에는 % 또는 _ 같은 와일드카드를 포함할 수 있습니다. LIKE 절은 대소문자를 구분하고, ILIKE 절은 대소문자를 구분하지 않습니다.

CHANGED 절을 사용하면 쿼리는 기본값에서 변경된 설정만 반환합니다.

예제

LIKE 절을 사용하는 쿼리:

SHOW SETTINGS LIKE 'send_timeout';
┌─name─────────┬─type────┬─value─┐
│ send_timeout │ Seconds │ 300   │
└──────────────┴─────────┴───────┘

ILIKE 절을 사용한 쿼리:

SHOW SETTINGS ILIKE '%CONNECT_timeout%'
┌─name────────────────────────────────────┬─type─────────┬─value─┐
│ connect_timeout                         │ Seconds      │ 10    │
│ connect_timeout_with_failover_ms        │ Milliseconds │ 50    │
│ connect_timeout_with_failover_secure_ms │ Milliseconds │ 100   │
└─────────────────────────────────────────┴──────────────┴───────┘

CHANGED 절을 사용한 쿼리:

SHOW CHANGED SETTINGS ILIKE '%MEMORY%'
┌─name─────────────┬─type───┬─value───────┐
│ max_memory_usage │ UInt64 │ 10000000000 │
└──────────────────┴────────┴─────────────┘

SHOW SETTING

SHOW SETTING 문은 지정된 설정 이름에 대한 값을 출력합니다.

문법

SHOW SETTING <name>

관련 항목

파일시스템 캐시 조회(SHOW FILESYSTEM CACHES)

예제

SHOW FILESYSTEM CACHES
┌─Caches────┐
│ s3_cache  │
└───────────┘

함께 보기

SHOW ENGINES

SHOW ENGINES 구문은 서버가 지원하는 테이블 엔진과 해당 기능 지원 정보를 설명하는 system.table_engines 테이블의 내용을 출력합니다.

구문

SHOW ENGINES [INTO OUTFILE filename] [FORMAT format]

참고

SHOW FUNCTIONS

SHOW FUNCTIONS 문은 system.functions 테이블의 내용을 표시합니다.

구문

SHOW FUNCTIONS [LIKE | ILIKE '<pattern>']

LIKE 또는 ILIKE 절을 지정하면, 쿼리는 이름이 지정한 <pattern>과 일치하는 시스템 함수 목록을 반환합니다.

참고 자료

SHOW MERGES

SHOW MERGES 구문은 머지 목록을 반환합니다.
모든 머지는 system.merges 테이블에 나열됩니다:

컬럼설명
table테이블 이름.
database테이블이 속한 데이터베이스 이름.
estimate_complete완료까지의 예상 시간(초 단위).
elapsed머지가 시작된 이후 경과 시간(초 단위).
progress완료된 작업 비율(0–100 퍼센트).
is_mutation이 프로세스가 파트 뮤테이션이면 1.
size_compressed머지된 파트의 압축된 데이터 전체 크기.
memory_usage머지 프로세스의 메모리 사용량.

구문

SHOW MERGES [[NOT] LIKE|ILIKE '<table_name_pattern>'] [LIMIT <N>]

예제

SHOW MERGES;
┌─table──────┬─database─┬─estimate_complete─┬─elapsed─┬─progress─┬─is_mutation─┬─size_compressed─┬─memory_usage─┐
│ your_table │ default  │              0.14 │    0.36 │    73.01 │           0 │        5.40 MiB │    10.25 MiB │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘
SHOW MERGES LIKE 'your_t%' LIMIT 1;
┌─table──────┬─database─┬─estimate_complete─┬─elapsed─┬─progress─┬─is_mutation─┬─size_compressed─┬─memory_usage─┐
│ your_table │ default  │              0.14 │    0.36 │    73.01 │           0 │        5.40 MiB │    10.25 MiB │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘

SHOW CREATE MASKING POLICY

SHOW CREATE MASKING POLICY SQL 문은 마스킹 정책 생성에 사용된 매개변수를 보여줍니다.

구문

SHOW CREATE MASKING POLICY name ON [database.]table