✅ CREATE 문법
CREATE 문법은 데이터베이스에서 다양한 개체를 생성하는 데 사용됩니다. 여기에는 스키마, 도메인, 테이블, 뷰, 인덱스 등이 포함됩니다.
💡 CREATE - SCHEMA 문법
CREATE SCHEMA 문법은 새로운 스키마를 생성하고 해당 스키마의 소유자를 설정하는 데 사용됩니다. 스키마는 데이터베이스 내에서 객체들을 그룹화하는 역할을 합니다.
-- 새로운 스키마 생성 및 소유자 설정
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;
예를 들어, 스키마명을 "my_schema"로 하고 소유자를 "my_user"로 설정하려면 다음과 같이 명령을 실행할 수 있습니다.
#Example
CREATE SCHEMA my_schema AUTHORIZATION my_user;
💡 CREATE - DOMAIN 문법
CREATE DOMAIN 문법은 새로운 도메인을 생성하는 데 사용됩니다. 도메인은 특정한 데이터 타입과 속성들의 집합을 정의하는 데 사용됩니다.
-- 도메인 생성
CREATE DOMAIN 도메인명 [AS] 데이터_타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건명 CHECK (범위값)];
예를 들어, "my_domain"이라는 이름의 도메인을 INTEGER 데이터 타입으로 생성하려면 다음과 같이 명령을 실행할 수 있습니다.
#Example
CREATE DOMAIN my_domain AS INTEGER;
도메인에 기본값을 설정하려면 DEFAULT 구문을 사용합니다. 예를 들어, "my_domain" 도메인의 기본값을 0으로 설정하려면 다음과 같이 명령을 실행할 수 있습니다.
#Example
CREATE DOMAIN my_domain AS INTEGER DEFAULT 0;
도메인에 제약 조건을 추가하려면 CONSTRAINT와 CHECK 구문을 사용합니다. 예를 들어, 도메인 값이 1부터 10까지의 범위에 속하도록 제약 조건을 설정하려면 다음과 같이 명령을 실행할 수 있습니다.
#Example
CREATE DOMAIN my_domain AS INTEGER CONSTRAINT my_constraint CHECK (VALUE >= 1 AND VALUE <= 10);
💡 CREATE - TABLE 문법
CREATE TABLE 문법은 새로운 테이블을 생성하는 데 사용됩니다. 테이블은 데이터의 구조를 정의하는 데 사용되며, 행과 열로 이루어진 데이터의 집합입니다.
CREATE TABLE 테이블명
(
-- 속성명과 데이터 타입을 정의합니다.
속성명 데이터_타입 [DEFAULT 기본값],
-- 해당 속성에 NULL 값이 허용되지 않도록 설정합니다.
[NOT NULL],
-- PRIMARY KEY를 정의합니다. 하나 이상의 속성을 기본키로 설정할 수 있습니다.
[PRIMARY KEY(기본키_속성명, ...)],
-- UNIQUE KEY를 정의합니다. 하나 이상의 속성을 대체키로 설정할 수 있습니다.
[UNIQUE KEY(대체키_속성명, ...)],
-- FOREIGN KEY를 정의합니다. 다른 테이블의 기본키를 참조하는 외래키로 설정할 수 있습니다.
[FOREIGN KEY(외래키_속성명, ...)]
REFERENCES 참조_테이블(기본키_속성명, ...)
[ON DELETE 옵션]
[ON UPDATE 옵션],
-- 제약조건의 이름을 정의합니다.
[CONSTRAINT 제약조건명],
-- 조건식을 정의하여 데이터의 유효성을 검사합니다.
[CHECK (조건식)]
);
예를 들어, 학생 테이블을 생성하고 각 속성의 데이터 타입과 제약 조건을 설정하려면 다음과 같이 명령을 실행할 수 있습니다. "학번" 속성을 기본키로 설정하였고, "이름" 속성은 NULL 값을 허용하지 않도록 설정하였습니다. 또한 "이름" 속성의 길이가 0보다 큰지를 체크하는 제약 조건을 추가하였습니다.
#Example
CREATE TABLE 학생
(
학번 INT PRIMARY KEY,
이름 VARCHAR(50) NOT NULL,
성별 CHAR(1),
학과 VARCHAR(50),
CONSTRAINT 학생_이름_길이 CHECK (LENGTH(이름) > 0)
);
💡 CREATE - VIEW 문법
CREATE VIEW 문법은 뷰를 생성하는 데 사용됩니다. 뷰는 저장된 데이터를 기반으로 가상의 테이블을 생성하는 데 사용됩니다. 뷰는 기존 테이블을 조회하거나 필요한 열을 선택하여 새로운 뷰를 만들 수 있습니다.
-- 뷰 생성
CREATE VIEW 뷰명 [(속성명[, 속성명, ...])] AS
SELECT문;
예를 들어, "학생" 테이블에서 학번, 이름, 학과 속성을 선택하여 학생뷰라는 뷰를 생성하였습니다. 이제 학생뷰를 쿼리 할 때 학번, 이름, 학과 정보만 조회할 수 있습니다.
#Example
CREATE VIEW 학생뷰 (학번, 이름, 학과)
AS SELECT 학번, 이름, 학과
FROM 학생;
💡 CREATE - INDEX 문법
CREATE INDEX 문법을 사용하여 인덱스를 생성할 수 있습니다. 인덱스는 데이터베이스의 테이블에서 검색 속도를 향상하기 위해 사용되는 구조입니다.
-- 인덱스 생성
CREATE [UNIQUE] INDEX [인덱스명]
ON 테이블명 (속성명 [ASC|DESC] [,속성명 [ASC|DESC]])
[CLUSTER];
예를 들어, "학생" 테이블의 "이름" 속성에 대한 인덱스를 생성하였습니다. 인덱스명은 "학생_이름_idx"로 지정되었고, 속성명으로는 "이름"을 사용하였으며, 오름차순(ASC)으로 정렬되도록 설정하였습니다.
#Example
CREATE INDEX 학생_이름_idx
ON 학생 (이름 ASC);