Information Schema
Information Schema는 현재 데이터베이스의 객체(테이블, 칼럼, 제약 조건, 루틴, 권한 등)에 대한 메타데이터를 제공하는 읽기 전용 뷰의 집합이다. Information Schema는 SQL 표준(ISO/IEC 9075-11)으로 정의되어 있어 이식성이 높고 안정적이다. 이는 CUBRID에 특화되어 있고 구현상의 고려 사항을 반영하여 설계된 시스템 카탈로그와 대비된다.
-- 사용자 'PUBLIC'이 소유한 테이블
SELECT table_name, table_type
FROM information_schema.tables
WHERE table_schema = 'PUBLIC';
-- 'game' 테이블의 칼럼
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = 'game'
ORDER BY ordinal_position;
Information Schema 뷰
다음 표는 Information Schema 뷰를 요약한 것이다. 각 뷰의 자세한 내용은 아래 설명을 참고한다.
뷰 이름 |
설명 |
|---|---|
칼럼에 정의된 권한 |
|
각 테이블의 칼럼 |
|
사용자 정의 도메인 |
|
외부 서버 정보 |
|
제약 조건이 있는 키 칼럼 |
|
루틴의 매개변수 |
|
테이블 파티션 정보 |
|
외래 키 정보 |
|
루틴에 정의된 권한 |
|
루틴 정보 |
|
스키마 정보 |
|
시퀀스 정보 |
|
테이블 인덱스 통계 |
|
동의어 정보 |
|
제약 조건이 있는 테이블 |
|
테이블에 정의된 권한 |
|
테이블 정보 |
|
트리거 정보 |
|
뷰 정보 |
column_privileges
column_privileges 뷰는 현재 사용자가 부여하거나 부여받은 칼럼 권한을 제공한다. CUBRID는 칼럼 단위 권한을 지원하지 않으므로 이 뷰는 항상 비어 있다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
grantor |
VARCHAR(32) |
|
grantee |
VARCHAR(32) |
|
table_catalog |
VARCHAR(255) |
|
table_schema |
VARCHAR(32) |
|
table_name |
VARCHAR(255) |
|
column_name |
VARCHAR(255) |
|
privilege_type |
VARCHAR(7) |
|
is_grantable |
VARCHAR(3) |
columns
columns 뷰는 현재 데이터베이스의 모든 테이블과 뷰의 칼럼 정보를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 테이블의 칼럼만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
table_catalog |
VARCHAR(255) |
테이블이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
테이블이 속한 스키마 이름 |
table_name |
VARCHAR(255) |
테이블 이름 |
column_name |
VARCHAR(255) |
칼럼 이름 |
ordinal_position |
INTEGER |
테이블 내 칼럼의 순서 위치(1부터 시작) |
column_default |
VARCHAR(2048) |
칼럼의 기본값 표현식 |
is_nullable |
VARCHAR(3) |
NOT NULL 제약이 설정되어 있으면 ‘NO’, 그렇지 않으면 ‘YES’ |
data_type |
VARCHAR(16) |
칼럼의 데이터 타입 |
character_maximum_length |
BIGINT |
문자형 또는 비트열 타입의 최대 문자 길이(그 외 타입은 NULL) |
character_octet_length |
BIGINT |
문자형 타입의 최대 바이트 길이(그 외 타입은 NULL) |
numeric_precision |
INTEGER |
숫자 타입의 정밀도(그 외 타입은 NULL) |
numeric_scale |
INTEGER |
정확한 숫자 타입의 소수 자릿수(그 외 타입은 NULL) |
datetime_precision |
INTEGER |
날짜/시간 타입의 소수 초 정밀도(그 외 타입은 NULL) |
character_set_name |
VARCHAR(32) |
문자형 타입의 문자 집합 이름(그 외 타입은 NULL) |
collation_name |
VARCHAR(32) |
문자형 타입의 콜레이션 이름(그 외 타입은 NULL) |
domain_catalog |
VARCHAR(255) |
미지원(항상 NULL) |
domain_schema |
VARCHAR(32) |
미지원(항상 NULL) |
domain_name |
VARCHAR(255) |
미지원(항상 NULL) |
udt_catalog |
VARCHAR(255) |
미지원(항상 NULL) |
udt_schema |
VARCHAR(32) |
미지원(항상 NULL) |
udt_name |
VARCHAR(255) |
미지원(항상 NULL) |
column_type |
STRING |
칼럼의 데이터 타입. data_type 은 타입 이름만 나타내지만 column_type 은 정밀도나 길이 등의 정보를 함께 나타낸다 |
column_key |
VARCHAR(3) |
칼럼이 인덱싱된 방식. ‘PRI’ 는 기본 키 또는 다중 칼럼 기본 키의 구성 칼럼, ‘UNI’ 는 고유 인덱스의 선두 칼럼, ‘MUL’ 은 중복 값을 허용하는 인덱스의 선두 칼럼을 나타낸다. 인덱싱되지 않았거나 다중 칼럼 비고유 인덱스의 보조 칼럼이면 빈 문자열이다. 둘 이상 해당하면 ‘PRI’, ‘UNI’, ‘MUL’ 순으로 우선한다 |
extra |
VARCHAR(255) |
공백으로 구분된 플래그 (auto_increment, partition_key) |
privileges |
VARCHAR(512) |
미지원(항상 NULL) |
column_comment |
VARCHAR(2048) |
칼럼 설명 |
is_generated |
VARCHAR(6) |
칼럼이 생성 칼럼인지 여부(항상 ‘NEVER’) |
generation_expression |
STRING |
미지원(항상 NULL) |
is_updatable |
VARCHAR(3) |
칼럼이 갱신 가능한지 여부(항상 ‘YES’) |
is_visible |
VARCHAR(3) |
숨김(invisible) 칼럼이면 ‘NO’, 아니면 ‘YES’ |
domains
domains 뷰는 현재 데이터베이스에 정의된 모든 사용자 정의 도메인을 제공한다. CUBRID는 사용자 정의 도메인을 지원하지 않으므로 이 뷰는 항상 비어 있다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
domain_catalog |
VARCHAR(255) |
|
domain_schema |
VARCHAR(32) |
|
domain_name |
VARCHAR(255) |
|
data_type |
VARCHAR(16) |
|
character_maximum_length |
BIGINT |
|
character_octet_length |
BIGINT |
|
character_set_catalog |
VARCHAR(255) |
|
character_set_schema |
VARCHAR(32) |
|
character_set_name |
VARCHAR(32) |
|
collation_catalog |
VARCHAR(255) |
|
collation_schema |
VARCHAR(32) |
|
collation_name |
VARCHAR(32) |
|
numeric_precision |
INTEGER |
|
numeric_precision_radix |
INTEGER |
|
numeric_scale |
INTEGER |
|
datetime_precision |
INTEGER |
|
domain_default |
VARCHAR(2048) |
|
udt_catalog |
VARCHAR(255) |
|
udt_schema |
VARCHAR(32) |
|
udt_name |
VARCHAR(255) |
|
domain_comment |
VARCHAR(2048) |
|
create_time |
DATETIME |
|
update_time |
DATETIME |
foreign_servers
foreign_servers 뷰는 현재 데이터베이스에 정의된 모든 외부 서버를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 서버만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
foreign_server_catalog |
VARCHAR(255) |
외부 서버가 속한 데이터베이스 이름(항상 현재 데이터베이스) |
foreign_server_name |
VARCHAR(255) |
외부 서버의 이름 |
foreign_data_wrapper_catalog |
VARCHAR(255) |
미지원(항상 NULL) |
foreign_data_wrapper_name |
VARCHAR(255) |
미지원(항상 NULL) |
foreign_server_type |
STRING |
미지원(항상 NULL) |
foreign_server_version |
STRING |
미지원(항상 NULL) |
authorization_identifier |
VARCHAR(32) |
외부 서버 소유자명 |
server_host |
VARCHAR(255) |
대상 호스트 |
server_port |
INTEGER |
대상 포트 |
server_database |
VARCHAR(255) |
대상 데이터베이스 이름 |
server_user |
VARCHAR(255) |
접속 사용자 이름 |
server_properties |
VARCHAR(2048) |
접속 속성 |
server_comment |
VARCHAR(1024) |
서버 설명 |
create_time |
DATETIME |
외부 서버 생성 시각 |
update_time |
DATETIME |
외부 서버 수정 시각 |
key_column_usage
key_column_usage 뷰는 현재 데이터베이스에서 PRIMARY KEY, UNIQUE, FOREIGN KEY 제약 조건으로 제약된 모든 칼럼을 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 테이블의 칼럼만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
constraint_catalog |
VARCHAR(255) |
제약 조건이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
constraint_schema |
VARCHAR(32) |
제약 조건이 속한 스키마 이름 |
constraint_name |
VARCHAR(255) |
제약 조건 이름 |
table_catalog |
VARCHAR(255) |
이 제약 조건으로 제약되는 칼럼이 속한 테이블의 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
이 제약 조건으로 제약되는 칼럼이 속한 테이블의 스키마 이름 |
table_name |
VARCHAR(255) |
이 제약 조건으로 제약되는 칼럼이 속한 테이블의 이름 |
column_name |
VARCHAR(255) |
이 제약 조건으로 제약되는 칼럼의 이름 |
ordinal_position |
INTEGER |
제약 조건 키 내 칼럼의 순서 위치(1부터 시작) |
position_in_unique_constraint |
INTEGER |
외래 키 제약 조건인 경우 참조되는 고유 제약 조건 내 칼럼의 순서 위치(1부터 시작), 그 외에는 NULL |
referenced_table_schema |
VARCHAR(32) |
제약 조건이 참조하는 스키마 이름(외래 키가 아니면 NULL) |
referenced_table_name |
VARCHAR(255) |
제약 조건이 참조하는 테이블 이름(외래 키가 아니면 NULL) |
referenced_column_name |
VARCHAR(255) |
제약 조건이 참조하는 칼럼 이름(외래 키가 아니면 NULL) |
parameters
parameters 뷰는 현재 데이터베이스의 모든 프로시저와 함수의 매개변수 정보를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 루틴의 매개변수만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
specific_catalog |
VARCHAR(255) |
루틴이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
specific_schema |
VARCHAR(32) |
루틴이 속한 스키마 이름 |
specific_name |
VARCHAR(255) |
루틴의 고유 이름 |
ordinal_position |
INTEGER |
루틴의 인자 목록 내 매개변수의 순서 위치(1부터 시작) |
parameter_mode |
VARCHAR(5) |
매개변수 모드 (IN: 입력, OUT: 출력, INOUT: 입출력) |
is_result |
VARCHAR(3) |
매개변수가 함수의 반환값인지 여부(항상 ‘NO’) |
parameter_name |
VARCHAR(255) |
매개변수 이름 |
data_type |
VARCHAR(16) |
매개변수의 데이터 타입 |
character_maximum_length |
BIGINT |
문자열 매개변수의 최대 문자 길이(항상 NULL) |
character_octet_length |
BIGINT |
문자열 매개변수의 최대 바이트 길이(항상 NULL) |
character_set_name |
VARCHAR(32) |
문자열 매개변수의 문자 집합(항상 NULL) |
collation_name |
VARCHAR(32) |
문자열 매개변수의 콜레이션(항상 NULL) |
numeric_precision |
INTEGER |
숫자 매개변수의 정밀도(항상 NULL) |
numeric_scale |
INTEGER |
숫자 매개변수의 소수 자릿수(항상 NULL) |
datetime_precision |
INTEGER |
날짜/시간 타입의 소수 초 정밀도(그 외 타입은 NULL) |
dtd_identifier |
VARCHAR(1024) |
미지원(항상 NULL) |
routine_type |
VARCHAR(9) |
루틴의 종류 (PROCEDURE, FUNCTION) |
parameter_default |
VARCHAR(2048) |
매개변수의 기본값 표현식(없으면 NULL) |
parameter_comment |
VARCHAR(1024) |
매개변수 설명 |
partitions
partitions 뷰는 현재 데이터베이스의 파티션된 테이블의 모든 파티션을 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 테이블의 파티션만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
table_catalog |
VARCHAR(255) |
테이블이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
테이블이 속한 스키마 이름 |
table_name |
VARCHAR(255) |
파티션된(상위) 테이블 이름 |
partition_name |
VARCHAR(255) |
파티션 이름 |
partition_ordinal_position |
INTEGER |
테이블 내 파티션의 순서 위치(항상 NULL) |
partition_method |
VARCHAR(5) |
파티셔닝 방식 (HASH, RANGE, LIST) |
partition_expression |
VARCHAR(2048) |
파티션 키 표현식 |
partition_description |
STRING |
RANGE/LIST 파티션의 경계값, HASH 파티션은 NULL |
subpartition_name |
VARCHAR(255) |
미지원(항상 NULL) |
subpartition_ordinal_position |
INTEGER |
미지원(항상 NULL) |
subpartition_method |
VARCHAR(5) |
미지원(항상 NULL) |
subpartition_expression |
VARCHAR(2048) |
미지원(항상 NULL) |
table_rows |
BIGINT |
파티션의 추정 행 수 |
avg_row_length |
BIGINT |
추정 평균 행 길이(바이트) |
data_length |
BIGINT |
추정 총 데이터 길이(바이트) |
data_free |
BIGINT |
추정 여유 공간(바이트) |
tablespace_name |
VARCHAR(255) |
미지원(항상 NULL) |
partition_comment |
VARCHAR(1024) |
파티션 설명 |
create_time |
DATETIME |
파티션 생성 시각 |
update_time |
DATETIME |
파티션 수정 시각 |
referential_constraints
referential_constraints 뷰는 현재 데이터베이스의 모든 참조(외래 키) 제약 조건을 제공한다. 단, 현재 사용자가 참조하는 테이블을 소유하거나 그에 대해 SELECT 외의 권한을 가진 제약 조건만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
constraint_catalog |
VARCHAR(255) |
제약 조건이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
constraint_schema |
VARCHAR(32) |
제약 조건이 속한 스키마 이름 |
constraint_name |
VARCHAR(255) |
제약 조건 이름 |
unique_constraint_catalog |
VARCHAR(255) |
외래 키가 참조하는 고유 또는 기본 키 제약 조건이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
unique_constraint_schema |
VARCHAR(32) |
외래 키가 참조하는 고유 또는 기본 키 제약 조건이 속한 스키마 이름 |
unique_constraint_name |
VARCHAR(255) |
외래 키가 참조하는 고유 또는 기본 키 제약 조건의 이름 |
match_option |
VARCHAR(7) |
외래 키의 매칭 옵션 (NONE, PARTIAL, FULL) |
update_rule |
VARCHAR(9) |
외래 키의 갱신 규칙 (RESTRICT, NO ACTION, SET NULL) |
delete_rule |
VARCHAR(9) |
외래 키의 삭제 규칙 (CASCADE, RESTRICT, NO ACTION, SET NULL) |
table_name |
VARCHAR(255) |
참조하는 테이블 |
referenced_table_name |
VARCHAR(255) |
참조되는 테이블 |
routine_privileges
routine_privileges 뷰는 현재 사용자가 부여하거나 부여받은 프로시저와 함수에 대한 권한을 제공한다. 루틴, 부여자(grantor), 피부여자(grantee)의 조합마다 한 행이 있다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
grantor |
VARCHAR(32) |
권한을 부여한 사용자 |
grantee |
VARCHAR(32) |
권한을 부여받은 사용자 |
specific_catalog |
VARCHAR(255) |
루틴이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
specific_schema |
VARCHAR(32) |
루틴이 속한 스키마 이름 |
specific_name |
VARCHAR(255) |
루틴의 고유 이름 |
routine_catalog |
VARCHAR(255) |
루틴이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
routine_schema |
VARCHAR(32) |
루틴이 속한 스키마 이름 |
routine_name |
VARCHAR(255) |
루틴 이름 |
privilege_type |
VARCHAR(7) |
권한의 종류(항상 EXECUTE) |
is_grantable |
VARCHAR(3) |
피부여자가 권한을 다른 사용자에게 부여할 수 있는지 여부(항상 ‘NO’) |
routines
routines 뷰는 현재 데이터베이스의 모든 프로시저와 함수를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 루틴만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
specific_catalog |
VARCHAR(255) |
루틴이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
specific_schema |
VARCHAR(32) |
루틴이 속한 스키마 이름 |
specific_name |
VARCHAR(255) |
루틴의 고유 이름 |
routine_catalog |
VARCHAR(255) |
루틴이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
routine_schema |
VARCHAR(32) |
루틴이 속한 스키마 이름 |
routine_name |
VARCHAR(255) |
루틴 이름 |
routine_type |
VARCHAR(9) |
루틴의 종류 (PROCEDURE, FUNCTION) |
data_type |
VARCHAR(16) |
함수의 반환 데이터 타입(프로시저는 NULL) |
character_maximum_length |
BIGINT |
문자열 반환값의 최대 문자 길이(항상 NULL) |
character_octet_length |
BIGINT |
문자열 반환값의 최대 바이트 길이(항상 NULL) |
character_set_name |
VARCHAR(32) |
문자열 반환 타입의 경우 반환값의 문자 집합 |
collation_name |
VARCHAR(32) |
문자열 반환값의 콜레이션(항상 NULL) |
numeric_precision |
INTEGER |
숫자 반환값의 정밀도(항상 NULL) |
numeric_scale |
INTEGER |
숫자 반환값의 소수 자릿수(항상 NULL) |
datetime_precision |
INTEGER |
날짜/시간 타입의 소수 초 정밀도(그 외 타입은 NULL) |
dtd_identifier |
VARCHAR(255) |
미지원(항상 NULL) |
routine_body |
VARCHAR(8) |
루틴 본문의 유형(항상 EXTERNAL) |
routine_definition |
STRING |
PL/CSQL 소스 텍스트 |
external_name |
STRING |
루틴의 외부 이름(없으면 NULL) |
external_language |
VARCHAR(64) |
루틴의 구현 언어 (PLCSQL, JAVA) |
parameter_style |
VARCHAR(3) |
루틴의 매개변수 전달 방식(항상 SQL) |
is_deterministic |
VARCHAR(3) |
DETERMINISTIC으로 선언되었으면 ‘YES’, 아니면 ‘NO’ |
sql_data_access |
VARCHAR(17) |
SQL 데이터 접근 수준 (NO SQL, CONTAINS SQL, READS SQL DATA, MODIFIES SQL DATA) |
sql_path |
STRING |
미지원(항상 NULL) |
security_type |
VARCHAR(7) |
루틴이 실행되는 보안 컨텍스트 (INVOKER, DEFINER) |
routine_comment |
VARCHAR(1024) |
루틴 설명 |
created |
DATETIME |
루틴 생성 시각 |
last_altered |
DATETIME |
루틴 수정 시각 |
definer |
VARCHAR(32) |
루틴의 소유자 |
참고
routine_definition은 PL/CSQL 소스 코드를 노출하므로 DBA 또는 루틴 소유자에게만 표시된다. 그 외 사용자에게는 NULL이다.
schemata
schemata 뷰는 현재 데이터베이스의 모든 스키마를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 스키마만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
catalog_name |
VARCHAR(255) |
스키마가 속한 데이터베이스 이름(항상 현재 데이터베이스) |
schema_name |
VARCHAR(32) |
스키마 이름 |
schema_owner |
VARCHAR(32) |
스키마 소유자명 |
default_character_set_catalog |
VARCHAR(255) |
기본 문자 집합이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
default_character_set_schema |
VARCHAR(255) |
기본 문자 집합이 속한 스키마 이름(항상 NULL) |
default_character_set_name |
VARCHAR(32) |
데이터베이스의 기본 문자 집합 |
sql_path |
STRING |
미지원(항상 NULL) |
schema_comment |
VARCHAR(1024) |
스키마 설명 |
create_time |
DATETIME |
스키마 생성 시각 |
참고
CUBRID에서 스키마는 데이터베이스 사용자와 동일하다.
sequences
sequences 뷰는 현재 데이터베이스에 정의된 모든 시퀀스를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 시퀀스만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
sequence_catalog |
VARCHAR(255) |
시퀀스가 속한 데이터베이스 이름(항상 현재 데이터베이스) |
sequence_schema |
VARCHAR(32) |
시퀀스가 속한 스키마 이름 |
sequence_name |
VARCHAR(255) |
시퀀스 이름 |
data_type |
VARCHAR(16) |
시퀀스의 데이터 타입(항상 NUMERIC) |
numeric_precision |
INTEGER |
시퀀스 데이터 타입의 정밀도(항상 38) |
numeric_precision_radix |
INTEGER |
정밀도가 표현되는 기수(항상 10) |
numeric_scale |
INTEGER |
시퀀스 데이터 타입의 소수 자릿수(항상 0) |
start_value |
NUMERIC(38,0) |
시퀀스의 시작값 |
minimum_value |
NUMERIC(38,0) |
시퀀스의 최솟값 |
maximum_value |
NUMERIC(38,0) |
시퀀스의 최댓값 |
increment |
NUMERIC(38,0) |
시퀀스의 증가값 |
cycle_option |
VARCHAR(3) |
시퀀스가 순환하면 ‘YES’, 아니면 ‘NO’ |
is_cached |
VARCHAR(3) |
캐시가 활성화되어 있으면 ‘YES’, 아니면 ‘NO’ |
sequence_comment |
VARCHAR(1024) |
시퀀스 설명 |
create_time |
DATETIME |
시퀀스 생성 시각 |
update_time |
DATETIME |
시퀀스 수정 시각 |
참고
CUBRID의 시리얼 객체는 이 뷰에 시퀀스로 표시된다. AUTO_INCREMENT 칼럼에 연결된 시퀀스는 표시되지 않는다.
statistics
statistics 뷰는 현재 데이터베이스의 테이블 인덱스 정보를 제공한다. 각 인덱스의 칼럼마다 한 행이 있다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 테이블의 인덱스만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
table_catalog |
VARCHAR(255) |
테이블이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
테이블이 속한 스키마 이름 |
table_name |
VARCHAR(255) |
테이블 이름 |
non_unique |
INTEGER |
인덱스가 중복을 허용하지 않으면 0, 허용하면 1 |
index_schema |
VARCHAR(32) |
인덱스가 속한 스키마 이름 |
index_name |
VARCHAR(255) |
인덱스 이름 |
seq_in_index |
INTEGER |
인덱스 내 칼럼의 순서 위치(1부터 시작) |
column_name |
VARCHAR(255) |
인덱스에 포함된 칼럼 이름 |
collation |
VARCHAR(1) |
인덱스 내 칼럼의 정렬 순서 (A: 오름차순, D: 내림차순) |
cardinality |
INTEGER |
인덱스의 추정 고유 값 수 |
sub_part |
INTEGER |
칼럼을 접두(prefix) 인덱싱한 경우 인덱싱된 문자 수, 전체 칼럼을 인덱싱하면 NULL |
nullable |
VARCHAR(3) |
인덱스 칼럼이 NULL을 허용하면 ‘YES’, 아니면 ‘NO’ |
index_type |
VARCHAR(32) |
인덱스 방식(항상 BTREE) |
comment |
VARCHAR(1024) |
시스템이 생성하는 인덱스 정보(CUBRID에서는 항상 NULL) |
index_comment |
VARCHAR(1024) |
인덱스 설명 |
is_visible |
VARCHAR(3) |
인덱스가 옵티마이저에 보이면 ‘YES’, 아니면 ‘NO’ |
expression |
VARCHAR(1023) |
함수 기반 인덱스의 표현식(일반 칼럼은 NULL) |
filter_condition |
STRING |
필터 인덱스의 조건식(필터 인덱스가 아니면 NULL) |
deduplicate_level |
INTEGER |
인덱스의 중복 제거(deduplicate) 옵션 레벨 |
create_time |
DATETIME |
인덱스 생성 시각 |
update_time |
DATETIME |
인덱스 수정 시각 |
access_time |
DATETIME |
미지원(항상 NULL) |
synonyms
synonyms 뷰는 현재 데이터베이스에 정의된 모든 동의어를 제공한다. 단, 현재 사용자가 소유하거나 공용(public)인 동의어만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
synonym_catalog |
VARCHAR(255) |
동의어가 속한 데이터베이스 이름(항상 현재 데이터베이스) |
synonym_schema |
VARCHAR(32) |
동의어가 속한 스키마 이름 |
synonym_name |
VARCHAR(255) |
동의어 이름 |
is_public_synonym |
VARCHAR(3) |
공용 동의어이면 ‘YES’, 아니면 ‘NO’ |
target_catalog |
VARCHAR(255) |
대상 객체가 속한 데이터베이스 이름(항상 현재 데이터베이스) |
target_schema |
VARCHAR(32) |
대상 객체가 속한 스키마 이름 |
target_name |
VARCHAR(255) |
대상 객체의 이름 |
synonym_comment |
VARCHAR(2048) |
동의어 설명 |
create_time |
DATETIME |
동의어 생성 시각 |
update_time |
DATETIME |
동의어 수정 시각 |
table_constraints
table_constraints 뷰는 현재 사용자가 소유하거나 SELECT 외의 권한을 가진 테이블에 속한 모든 PRIMARY KEY, UNIQUE, FOREIGN KEY 제약 조건을 제공한다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
constraint_catalog |
VARCHAR(255) |
제약 조건이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
constraint_schema |
VARCHAR(32) |
제약 조건이 속한 스키마 이름 |
constraint_name |
VARCHAR(255) |
제약 조건 이름 |
table_catalog |
VARCHAR(255) |
테이블이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
테이블이 속한 스키마 이름 |
table_name |
VARCHAR(255) |
테이블 이름 |
constraint_type |
VARCHAR(11) |
제약 조건의 종류 (PRIMARY KEY, UNIQUE, FOREIGN KEY) |
is_deferrable |
VARCHAR(3) |
제약 조건을 지연할 수 있는지 여부(항상 ‘NO’) |
initially_deferred |
VARCHAR(3) |
제약 조건이 초기 지연 상태인지 여부(항상 ‘NO’) |
enforced |
VARCHAR(3) |
제약 조건이 적용되면 ‘YES’, 아니면 ‘NO’ |
참고
PRIMARY KEY, UNIQUE, FOREIGN KEY 제약 조건만 표시되며, CHECK 제약 조건은 표시되지 않는다.
table_privileges
table_privileges 뷰는 현재 사용자가 부여하거나 부여받은 테이블 또는 뷰 권한을 제공한다. 테이블, 부여자(grantor), 피부여자(grantee)의 조합마다 한 행이 있다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
grantor |
VARCHAR(32) |
권한을 부여한 사용자 |
grantee |
VARCHAR(32) |
권한을 부여받은 사용자 |
table_catalog |
VARCHAR(255) |
테이블이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
테이블이 속한 스키마 이름 |
table_name |
VARCHAR(255) |
테이블 이름 |
privilege_type |
VARCHAR(7) |
권한의 종류 (SELECT, INSERT, UPDATE, DELETE, ALTER, INDEX, EXECUTE) |
is_grantable |
VARCHAR(3) |
피부여자가 다른 사용자에게 권한을 부여할 수 있으면 ‘YES’, 아니면 ‘NO’ |
tables
tables 뷰는 현재 데이터베이스에 정의된 모든 테이블과 뷰를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 테이블과 뷰만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
table_catalog |
VARCHAR(255) |
테이블이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
테이블이 속한 스키마 이름 |
table_name |
VARCHAR(255) |
테이블 이름 |
table_type |
VARCHAR(12) |
테이블의 종류 (BASE TABLE, VIEW, SYSTEM TABLE, SYSTEM VIEW) |
table_rows |
BIGINT |
추정 행 수 |
avg_row_length |
BIGINT |
추정 평균 행 길이(바이트) |
data_length |
BIGINT |
추정 총 데이터 길이(바이트) |
data_free |
BIGINT |
추정 여유 공간(바이트) |
auto_increment |
NUMERIC(38,0) |
다음 AUTO_INCREMENT 값(해당하지 않으면 NULL) |
table_collation |
VARCHAR(32) |
테이블의 기본 콜레이션 |
create_options |
VARCHAR(255) |
OID 재사용 설정(REUSE_OID 또는 DONT_REUSE_OID)과 TDE 설정(ENCRYPT=NONE, ENCRYPT=AES, ENCRYPT=ARIA)을 포함하는, 공백으로 구분된 테이블 생성 옵션 목록 |
is_temporary |
VARCHAR(3) |
테이블이 임시 테이블인지 여부(항상 ‘NO’) |
table_comment |
VARCHAR(2048) |
테이블 설명 |
create_time |
DATETIME |
테이블 생성 시각 |
update_time |
DATETIME |
테이블 수정 시각 |
statistics_strategy |
VARCHAR(8) |
통계 수집 방식 (SAMPLING, FULLSCAN) |
last_analyzed |
DATETIME |
테이블의 통계 정보 갱신 시각 |
triggers
triggers 뷰는 현재 사용자가 소유하거나 SELECT 외의 권한을 가진 테이블에 정의된 모든 트리거를 제공한다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
trigger_catalog |
VARCHAR(255) |
트리거가 속한 데이터베이스 이름(항상 현재 데이터베이스) |
trigger_schema |
VARCHAR(32) |
트리거가 속한 스키마 이름 |
trigger_name |
VARCHAR(255) |
트리거 이름 |
event_manipulation |
VARCHAR(8) |
트리거를 발생시키는 이벤트 (INSERT, UPDATE, DELETE) |
event_object_catalog |
VARCHAR(255) |
트리거가 정의된 테이블이 속한 데이터베이스 이름(항상 현재 데이터베이스) |
event_object_schema |
VARCHAR(32) |
트리거가 정의된 테이블이 속한 스키마 이름 |
event_object_table |
VARCHAR(255) |
트리거가 정의된 테이블의 이름 |
event_object_column |
VARCHAR(255) |
UPDATE OF 절의 대상 칼럼(그 외에는 NULL) |
action_order |
INTEGER |
미지원(항상 NULL) |
action_condition |
STRING |
트리거의 WHEN/IF 조건(없으면 NULL) |
action_statement |
STRING |
트리거가 실행하는 문장 |
action_orientation |
VARCHAR(9) |
트리거가 행마다 발생하는지 문장마다 발생하는지 (ROW, STATEMENT) |
action_timing |
VARCHAR(8) |
트리거가 발생하는 시점 (BEFORE, AFTER, DEFERRED) |
action_reference_old_table |
VARCHAR(3) |
미지원(항상 NULL) |
action_reference_new_table |
VARCHAR(3) |
미지원(항상 NULL) |
action_reference_old_row |
VARCHAR(3) |
이전 행을 참조하는 데 사용되는 별칭(항상 OLD) |
action_reference_new_row |
VARCHAR(3) |
새 행을 참조하는 데 사용되는 별칭(항상 NEW) |
definer |
VARCHAR(32) |
트리거의 소유자 |
trigger_comment |
VARCHAR(1024) |
트리거 설명 |
create_time |
DATETIME |
트리거 생성 시각 |
update_time |
DATETIME |
트리거 수정 시각 |
참고
이 뷰에는 INSERT, UPDATE, DELETE (DML) 트리거만 표시된다. CUBRID는 COMMIT, ROLLBACK 트리거도 지원하지만 여기에는 표시되지 않는다.
views
views 뷰는 현재 데이터베이스에 정의된 모든 뷰를 제공한다. 단, 현재 사용자가 소유하거나 접근 권한을 가진 뷰만 표시된다.
칼럼명 |
데이터 타입 |
설명 |
|---|---|---|
table_catalog |
VARCHAR(255) |
뷰가 속한 데이터베이스 이름(항상 현재 데이터베이스) |
table_schema |
VARCHAR(32) |
뷰가 속한 스키마 이름 |
table_name |
VARCHAR(255) |
뷰 이름 |
view_definition |
STRING |
뷰를 정의하는 질의 표현식 |
check_option |
VARCHAR(8) |
뷰의 WITH CHECK OPTION 설정: CASCADED, LOCAL, 또는 CHECK OPTION이 정의되어 있지 않으면 NONE |
is_updatable |
VARCHAR(3) |
뷰가 갱신 가능한지 여부(항상 NULL) |
definer |
VARCHAR(32) |
뷰의 소유자 |
view_comment |
VARCHAR(2048) |
뷰 설명 |
create_time |
DATETIME |
뷰 생성 시각 |
update_time |
DATETIME |
뷰 수정 시각 |
참고
CUBRID는 뷰의 갱신 가능 여부를 고정 값으로 저장하지 않으므로 is_updatable은 항상 NULL이다.