Skip to main content
INFORMATION_SCHEMA(또는 information_schema)는 데이터베이스 객체의 메타데이터에 대해 (어느 정도) 표준화된 DBMS 비종속적 VIEW를 제공하는 system 데이터베이스입니다. INFORMATION_SCHEMA의 VIEW는 일반적으로 일반 시스템 테이블보다 기능이 다소 제한적이지만, 도구에서 DBMS 전반에 걸쳐 기본 정보를 얻는 데 사용할 수 있습니다. INFORMATION_SCHEMA의 VIEW 구조와 내용은 하위 호환성을 유지하는 방식으로 발전하도록 설계되어 있습니다. 즉, 새로운 기능만 추가되고 기존 기능은 변경되거나 제거되지 않습니다. 내부 구현 측면에서 INFORMATION_SCHEMA의 VIEW는 일반적으로 system.columns, system.databases, system.tables와 같은 일반 시스템 테이블에 매핑됩니다.
INFORMATION_SCHEMA에는 다음 VIEW가 포함되어 있습니다: 다른 데이터베이스와의 호환성을 위해 대소문자를 구분하지 않는 동등한 VIEW(예: INFORMATION_SCHEMA.columns)도 제공합니다. 이는 이러한 VIEW의 모든 컬럼에도 동일하게 적용되며, 소문자(예: table_name)와 대문자(TABLE_NAME) 형태를 모두 제공합니다.

COLUMNS

system.columns 시스템 테이블(system table)에서 읽은 컬럼과, ClickHouse에서 지원되지 않거나 의미가 없지만(항상 NULL) 표준상 반드시 포함되어야 하는 컬럼을 포함합니다. 컬럼:
  • table_catalog (String) — 현재는 사용되지 않습니다.
  • table_schema (String) — 현재는 사용되지 않습니다.
  • table_name (String) — 현재는 사용되지 않습니다.
  • non_unique (Int32) — 현재는 사용되지 않습니다.
  • index_schema (String) — 현재는 사용되지 않습니다.
  • index_name (Nullable(String)) — 현재는 사용되지 않습니다.
  • seq_in_index (UInt32) — 현재는 사용되지 않습니다.
  • column_name (Nullable(String)) — 현재는 사용되지 않습니다.
  • collation (Nullable(String)) — 현재는 사용되지 않습니다.
  • cardinality (Nullable(Int64)) — 현재는 사용되지 않습니다.
  • sub_part (Nullable(Int64)) — 현재는 사용되지 않습니다.
  • packed (Nullable(String)) — 현재는 사용되지 않습니다.
  • nullable (String) — 현재는 사용되지 않습니다.
  • index_type (String) — 현재는 사용되지 않습니다.
  • comment (String) — 현재는 사용되지 않습니다.
  • index_comment (String) — 현재는 사용되지 않습니다.
  • is_visible (String) — 현재는 사용되지 않습니다.
  • expression (Nullable(String)) — 현재는 사용되지 않습니다.
예시
Query
Response

SCHEMATA

system.databases 시스템 테이블에서 읽어온 컬럼과, ClickHouse에서 지원되지 않거나 의미가 없지만(항상 NULL) 표준상 반드시 포함되어야 하는 컬럼을 포함합니다. 컬럼:
  • catalog_name (String) — 데이터베이스 이름입니다.
  • schema_name (String) — 데이터베이스 이름입니다.
  • schema_owner (String) — 스키마 소유자 이름이며, 항상 'default'입니다.
  • default_character_set_catalog (Nullable(String)) — NULL이며, 지원되지 않습니다.
  • default_character_set_schema (Nullable(String)) — NULL이며, 지원되지 않습니다.
  • default_character_set_name (Nullable(String)) — NULL이며, 지원되지 않습니다.
  • sql_path (Nullable(String)) — NULL이며, 지원되지 않습니다.
예시
Query
Response

TABLES

system.tables 시스템 테이블에서 읽어 온 컬럼을 포함합니다. 컬럼:
  • table_catalog (String) — 테이블이 위치한 데이터베이스의 이름입니다.
  • table_schema (String) — 테이블이 위치한 데이터베이스의 이름입니다.
  • table_name (String) — 테이블 이름입니다.
  • table_type (String) — 테이블 유형입니다. 가능한 값:
    • BASE TABLE
    • VIEW
    • FOREIGN TABLE
    • LOCAL TEMPORARY
    • SYSTEM VIEW
  • table_rows (Nullable(UInt64)) — 전체 행 수입니다. 확인할 수 없는 경우 NULL입니다.
  • data_length (Nullable(UInt64)) — 디스크에 저장된 데이터 크기입니다. 확인할 수 없는 경우 NULL입니다.
  • index_length (Nullable(UInt64)) — 프라이머리 키, 보조 인덱스, 그리고 모든 마크의 전체 크기입니다.
  • table_collation (Nullable(String)) — 테이블의 기본 콜레이션입니다. 항상 utf8mb4_0900_ai_ci입니다.
  • table_comment (Nullable(String)) — 테이블 생성 시 사용된 설명입니다.
예시
Query
Response

VIEWS

테이블 엔진 View을 사용하는 경우 system.tables 시스템 테이블에서 읽어온 컬럼이 포함됩니다. 컬럼:
  • table_catalog (String) — 테이블이 위치한 데이터베이스의 이름입니다.
  • table_schema (String) — 테이블이 위치한 데이터베이스의 이름입니다.
  • table_name (String) — 테이블 이름입니다.
  • view_definition (String) — 뷰의 SELECT 쿼리입니다.
  • check_option (String) — NONE, 검사를 수행하지 않음을 의미합니다.
  • is_updatable (Enum8) — NO, 뷰는 업데이트되지 않습니다.
  • is_insertable_into (Enum8) — 생성된 뷰가 구체화된 뷰(Materialized View)인지 여부를 나타냅니다. 가능한 값은 다음과 같습니다:
    • NO — 생성된 뷰는 구체화된 뷰가 아닙니다.
    • YES — 생성된 뷰는 구체화된 뷰입니다.
  • is_trigger_updatable (Enum8) — NO, 트리거는 업데이트되지 않습니다.
  • is_trigger_deletable (Enum8) — NO, 트리거는 삭제되지 않습니다.
  • is_trigger_insertable_into (Enum8) — NO, 트리거에 데이터가 삽입되지 않습니다.
예시
Query
Response

KEY_COLUMN_USAGE

제약 조건이 적용된 system.tables 시스템 테이블의 컬럼을 포함합니다. 컬럼:
  • constraint_catalog (String) — 현재 사용되지 않습니다. 항상 def입니다.
  • constraint_schema (String) — 제약 조건이 속한 스키마(데이터베이스)의 이름입니다.
  • constraint_name (Nullable(String)) — 제약 조건의 이름입니다.
  • table_catalog (String) — 현재 사용되지 않습니다. 항상 def입니다.
  • table_schema (String) — 테이블이 속한 스키마(데이터베이스)의 이름입니다.
  • table_name (String) — 제약 조건이 적용된 테이블의 이름입니다.
  • column_name (Nullable(String)) — 제약 조건이 적용된 컬럼의 이름입니다.
  • ordinal_position (UInt32) — 현재 사용되지 않습니다. 항상 1입니다.
  • position_in_unique_constraint (Nullable(UInt32)) — 현재 사용되지 않습니다. 항상 NULL입니다.
  • referenced_table_schema (Nullable(String)) — 현재 사용되지 않습니다. 항상 NULL입니다.
  • referenced_table_name (Nullable(String)) — 현재 사용되지 않습니다. 항상 NULL입니다.
  • referenced_column_name (Nullable(String)) — 현재 사용되지 않습니다. 항상 NULL입니다.
예시
Query
Response

REFERENTIAL_CONSTRAINTS

외래 키에 대한 정보를 포함합니다. 현재는 빈 결과(행 없음)만 반환하며, 이는 Tableau Online과 같은 타사 도구와의 호환성을 제공하는 데 필요한 최소한의 수준입니다. 컬럼:
  • constraint_catalog (String) — 현재 사용되지 않습니다.
  • constraint_schema (String) — 현재 사용되지 않습니다.
  • constraint_name (Nullable(String)) — 현재 사용되지 않습니다.
  • unique_constraint_catalog (String) — 현재 사용되지 않습니다.
  • unique_constraint_schema (String) — 현재 사용되지 않습니다.
  • unique_constraint_name (Nullable(String)) — 현재 사용되지 않습니다.
  • match_option (String) — 현재 사용되지 않습니다.
  • update_rule (String) — 현재 사용되지 않습니다.
  • delete_rule (String) — 현재 사용되지 않습니다.
  • table_name (String) — 현재 사용되지 않습니다.
  • referenced_table_name (String) — 현재 사용되지 않습니다.

STATISTICS

테이블 인덱스에 대한 정보를 제공합니다. 현재는 빈 결과(행 없음)만 반환하며, Tableau Online과 같은 타사 도구와의 호환성을 유지하는 데 필요한 최소한의 수준만 제공합니다.

COLLATIONS

사용 가능한 콜레이션 정보를 제공합니다. system.collations의 콜레이션과 MySQL 호환성을 위한 2개의 행을 포함합니다. utf8mb4_0900_ai_ci는 MySQL 프로토콜이 핸드셰이크, SCHEMATA.DEFAULT_COLLATION_NAME, TABLES.TABLE_COLLATION에서 알리는 콜레이션이며, binary는 MySQL 프로토콜이 결과 집합 메타데이터의 숫자형 및 기타 비문자열 컬럼에 지정하는 의사 콜레이션입니다. 따라서 알린 콜레이션을 따라 이 뷰를 조회하는 MySQL 지원 클라이언트도 해당 항목을 찾을 수 있습니다. 컬럼:
  • collation_name (String) — 콜레이션의 이름입니다.
  • character_set_name (Nullable(String)) — 연결된 문자 집합입니다(utf8mb4_0900_ai_ci의 경우 utf8mb4, binary의 경우 binary, 그 외에는 NULL). MySQL 호환성을 위해 제공됩니다.
  • id (Nullable(UInt64)) — MySQL 콜레이션 ID입니다(utf8mb4_0900_ai_ci의 경우 255, binary의 경우 63, 그 외에는 NULL). MySQL 호환성을 위해 제공됩니다.
  • is_default (Nullable(String)) — 콜레이션이 해당 문자 집합의 기본값인지 여부입니다(MySQL 호환성 행 2개 모두 Yes, 그 외에는 NULL). MySQL 호환성을 위해 제공됩니다.
  • is_compiled (Nullable(String)) — 콜레이션이 서버에 컴파일되어 있는지 여부입니다(MySQL 호환성 행 2개 모두 Yes, 그 외에는 NULL). MySQL 호환성을 위해 제공됩니다.
  • sortlen (Nullable(UInt64)) — 최소 정렬 길이입니다(utf8mb4_0900_ai_ci의 경우 0, binary의 경우 1, 그 외에는 NULL). MySQL 호환성을 위해 제공됩니다.
  • pad_attribute (Nullable(String)) — 패딩 속성으로, NO PAD 또는 PAD SPACE입니다(MySQL 호환성 행 2개 모두 NO PAD, 그 외에는 NULL). MySQL 호환성을 위해 제공됩니다.
마지막 수정일 2026년 8월 14일