INFORMATION_SCHEMA
SQL 표준의 일부로, 데이터베이스 메타데이터에 접근할 수 있는
여러 시스템 뷰들을 제공하는 스키마이다.
이를 통해 사용자는
데이터베이스의 구조, 테이블, 컬럼, 인덱스, 제약 조건 등
다양한 정보를 조회할 수 있다.
설명: 데이터베이스의 테이블에 대한 정보를 포함
주요 컬럼:
TABLE_CATALOG: 테이블이 속한 카탈로그
TABLE_SCHEMA: 테이블이 속한 스키마
TABLE_NAME: 테이블의 이름
TABLE_TYPE: 테이블의 유형 (BASE TABLE, VIEW 등)
설명: 데이터베이스의 모든 테이블에 있는 컬럼에 대한 정보를 포함
주요 컬럼:
TABLE_CATALOG: 컬럼이 속한 테이블의 카탈로그
TABLE_SCHEMA: 컬럼이 속한 테이블의 스키마
TABLE_NAME: 컬럼이 속한 테이블의 이름
COLUMN_NAME: 컬럼의 이름
DATA_TYPE: 컬럼의 데이터 타입
COLUMN_DEFAULT: 컬럼의 기본값
IS_NULLABLE: 컬럼이 NULL 값을 허용하는지 여부
설명: 데이터베이스의 스키마에 대한 정보를 포함
주요 컬럼:
CATALOG_NAME: 카탈로그의 이름
SCHEMA_NAME: 스키마의 이름
DEFAULT_CHARACTER_SET_NAME: 스키마의 기본 문자 세트
DEFAULT_COLLATION_NAME: 스키마의 기본 콜레이션
설명: 테이블의 인덱스에 대한 정보를 포함
주요 컬럼:
TABLE_CATALOG: 인덱스가 속한 테이블의 카탈로그
TABLE_SCHEMA: 인덱스가 속한 테이블의 스키마
TABLE_NAME: 인덱스가 속한 테이블의 이름
NON_UNIQUE: 인덱스가 고유 인덱스인지 여부
INDEX_NAME: 인덱스의 이름
SEQ_IN_INDEX: 인덱스에서의 컬럼 순서
COLUMN_NAME: 인덱스가 적용된 컬럼의 이름
설명: 테이블 제약 조건에 대한 정보를 포함
주요 컬럼:
CONSTRAINT_CATALOG: 제약 조건이 속한 카탈로그
CONSTRAINT_SCHEMA: 제약 조건이 속한 스키마
CONSTRAINT_NAME: 제약 조건의 이름
TABLE_NAME: 제약 조건이 적용된 테이블의 이름
CONSTRAINT_TYPE: 제약 조건의 유형 (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK 등)
설명: 외래 키 제약 조건에 대한 정보를 포함
주요 컬럼:
CONSTRAINT_CATALOG: 제약 조건이 속한 카탈로그
CONSTRAINT_SCHEMA: 제약 조건이 속한 스키마
CONSTRAINT_NAME: 제약 조건의 이름
UNIQUE_CONSTRAINT_CATALOG: 참조되는 고유 제약 조건이 속한 카탈로그
UNIQUE_CONSTRAINT_SCHEMA: 참조되는 고유 제약 조건이 속한 스키마
UNIQUE_CONSTRAINT_NAME: 참조되는 고유 제약 조건의 이름
UPDATE_RULE: 외래 키의 업데이트 규칙
DELETE_RULE: 외래 키의 삭제 규칙
설명: 키 컬럼 사용에 대한 정보를 포함
주요 컬럼:
CONSTRAINT_CATALOG: 제약 조건이 속한 카탈로그
CONSTRAINT_SCHEMA: 제약 조건이 속한 스키마
CONSTRAINT_NAME: 제약 조건의 이름
TABLE_NAME: 컬럼이 속한 테이블의 이름
COLUMN_NAME: 컬럼의 이름
ORDINAL_POSITION: 키에서의 컬럼 순서
POSITION_IN_UNIQUE_CONSTRAINT: 고유 제약 조건에서의 위치
모든 테이블 목록 조회
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_name'
특정 테이블의 컬럼 목록 조회
SELECT COLUMN_NAME , DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table_name'
모든 인덱스 목록 조회
SELECT TABLE_NAME , INDEX_NAME , COLUMN_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'database_name'
외래 키 제약 조건 조회
SELECT TABLE_NAME , COLUMN_NAME , CONSTRAINT_NAME , REFERENCED_TABLE_NAME , REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL