본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

INFORMATION SCHEMA(정보 스키마, INFORMATION_SCHEMA)는 데이터베이스에 정의된 테이블, 컬럼, 뷰, 제약조건, 권한 같은 메타데이터를 SQL 표준이 정한 이름과 형식의 읽기 전용 뷰로 보여 주는 가상 스키마이다.

모든 관계형 DBMS 는 스키마 정보를 시스템 카탈로그에 저장한다. 그러나 카탈로그 테이블의 이름과 구조는 제품마다 다르다(Oracle 의 데이터 사전 뷰, SQL Server 의 sys 카탈로그 뷰, PostgreSQL 의 pg_catalog). INFORMATION SCHEMA 는 그 위에 ISO/IEC 9075(SQL 표준)가 정의한 뷰들을 얹어, 어느 DBMS 에서나 같은 질의로 메타데이터를 조회할 수 있게 한 것이다.[1] PostgreSQL 문서는 정보 스키마가 SQL 표준에 정의되어 이식성이 있고 안정적인 반면, 시스템 카탈로그는 그 제품의 구현 사정에 맞춘 것이라고 둘을 구별한다. 대신 정보 스키마에는 그 제품만의 기능에 대한 정보는 담기지 않는다.[1]

뷰 담는 정보
TABLES 테이블과 뷰의 목록, 종류(BASE TABLE, VIEW)
COLUMNS 컬럼 이름, 데이터 형식, 기본값, NULL 허용 여부, 순서
VIEWS 뷰 정의
TABLE_CONSTRAINTS 기본 키, 외래 키, UNIQUE, CHECK 제약조건
KEY_COLUMN_USAGE 제약조건에 쓰인 컬럼
REFERENTIAL_CONSTRAINTS 외래 키가 참조하는 제약조건과 갱신·삭제 규칙
ROUTINES 저장 프로시저와 함수
TABLE_PRIVILEGES, COLUMN_PRIVILEGES 부여된 권한
-- 특정 테이블의 컬럼 목록 조회
SELECT column_name, data_type, is_nullable
  FROM information_schema.columns
 WHERE table_name = 'emp'
 ORDER BY ordinal_position;
  • 읽기 전용이다. 메타데이터를 바꾸려면 CREATE, ALTER, DROP 같은 DDL 을 쓰고, DBMS 가 카탈로그를 고치면 정보 스키마 뷰에 그대로 반영된다.
  • 사용자는 자신이 권한을 가진 객체만 볼 수 있다.
  • SQL Server 문서는 내부 시스템 테이블이 크게 바뀌어도 정보 스키마 뷰는 ISO 표준 정의를 따르므로 응용 프로그램이 계속 동작한다는 점을 장점으로 든다.[2]
  • 지원 범위는 제품마다 다르다. MySQL, PostgreSQL, SQL Server 는 INFORMATION_SCHEMA 를 제공하고, Oracle 은 표준 뷰 대신 자체 데이터 사전 뷰(USER_TABLES, ALL_TAB_COLUMNS 등)를 쓴다.

비슷한 이름과 구별하기

편집 원본 편집
대상 성격
INFORMATION SCHEMA SQL 표준이 정의한 메타데이터 조회용 가상 스키마
시스템 카탈로그(데이터 사전) DBMS 가 스스로 만들고 고치는 실제 메타데이터 저장소. 구조가 제품마다 다르다
트랜잭션 로그 데이터 변경 이력을 회복용으로 기록한 것. 메타데이터 조회용이 아니며, SQL 표준에 "SYSTEM_LOG" 라는 메타데이터 스키마는 없다
  1. ↑ 1.0 1.1 「The Information Schema」, PostgreSQL Documentation, https://www.postgresql.org/docs/current/information-schema.html, 확인일: 2026-11-04.
  2. ↑ 「System Information Schema Views (Transact-SQL)」, Microsoft Learn, https://learn.microsoft.com/en-us/sql/relational-databases/system-information-schema-views/system-information-schema-views-transact-sql, 확인일: 2026-11-04.