본문 바로가기
기타/정보처리기사

정보처리기사 정처기 | SQL CREATE 문법 - 데이터 정의어(Data Definition Language, DDL) | 필기&실기 개념

by YUNI Heo 2023. 7. 10.
반응형

 

✅ 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);
반응형