Schema
Schema 개념
- PostgreSQL에서 Schema는 object들(table, view, sequence, domain, function 등)의 논리적인 집합을 의미한다.
- Object들을 구분함으로 관리의 편의성을 높이고 여러 User들 간의 간섭없이 접속할 수 있게 한다.
- table들을 모아주는 하나의 집합이라고 볼 수 있다.
Schema의 특징
- Schema가 다르면 같은 이름의 테이블을 만들 수 있다.
- ex. 생산팀 schema와 인사팀 schema 모두에 직원 table이 존재할 수 있다.
- 다른 스키마의 동일한 테이블이 있을 때
schema.table
로 정확하게 작성해줘야 혼동이 사라진다.
- schema명을 적지 않을 시 제일 상위의 schema(search path 순서)의 table을 조회한다.
Schema 리스트 확인
\\dn
과 information_schema.schemata
테이블을 사용하여 스키마 리스트를 확인할 수 있다.
\\dn
select * from information_schema.schemata;
Schema 생성
- 스키마를 생성할 때는
CREATE문
을 사용한다.
CREATE SCHEMA [IF NOT EXISTS] [schema_name]
[AUTHORIZATION user_name] [schema_element [...]];
-- ex1.
CREATE SCHEMA test_schema;
-- ex2. OWNER 지정
CREATE SCHEMA test_schema AUTHORIZATION testuser;
- Options
- schema를 지정하지 않고 table을 생성하면, 생성된 table은 search path의 최상위 schema 에 자동으로 소속된다.
Schema 수정