English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PostgreSQL 스키마(SCHEMA)

PostgreSQL 스키마(SCHEMA)는 테이블 집합으로 볼 수 있습니다。

스키마는 뷰, 인덱스, 데이터 타입, 함수 및 연산자 등을 포함할 수 있습니다。

같은 객체 이름이 다른 스키마에서 사용될 수 있어 충돌이 발생하지 않습니다. 예를 들어 schema1 myschema 모두에서 mytable 이름의 테이블을 포함할 수 있습니다。

스키마 사용의 장점:

  • 여러 사용자가 데이터베이스를 사용할 수 있으며 서로 간에相互 간섭이 없습니다。

  • 데이터베이스 객체를 논리 그룹으로 조직하여 관리하기 쉽게 합니다。

  • 제3자 애플리케이션 객체는 독립된 스키마에 위치할 수 있어 다른 객체의 이름과 충돌하지 않습니다。

스키마는 운영체제 계층의 디렉토리와 유사하지만, 스키마는 중첩될 수 없습니다。

문법

다음과 같은 문법을 사용할 수 있습니다: CREATE SCHEMA 스키마를 생성하는 문법을 다음과 같이 사용합니다:

CREATE SCHEMA myschema.mytable (
...
);

온라인 예제

다음으로 w에 연결합니다:3codeboxdb를 사용하여 myschema 스키마를 생성합니다:

w3codeboxdb=# create schema myschema;
CREATE SCHEMA

출력 결과 "CREATE SCHEMA"는 스키마가 성공적으로 생성되었다는 것을 의미합니다。

다음으로 테이블을 다시 생성합니다:

w3codeboxdb=# create table myschema.company (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

위 명령어는 빈 테이블을 생성하였습니다. 테이블이 생성되었는지 확인하기 위해 다음 SQL을 사용합니다:

w3codeboxdb=# select * from myschema.company;
 id | name | age | address | salary 
----+------+-----+---------+--------
(0 rows)

스키마 제거

모든 객체가 제거된 비어 있는 스키마를 제거합니다:

DROP SCHEMA myschema;

하나의 스키마 및 그에 포함된 모든 객체를 제거합니다:

DROP SCHEMA myschema CASCADE;