Database

SQL을 이용한 데이터 정의

it's woo 2021. 12. 6. 01:59
 

데이터베이스 개론 - 교보문고

[요약]①데이터베이스 기초 이론 : 1장에서 데이터베이스를, 2장에서 DBMS를 소개합니다. 3장에서는 이들을 조합한 데이터베이스 시스템을 소개합니다.②데이터 모델과 연산 : 4장에서 데이터 모

www.kyobobook.co.kr

 

SQL의 데이터 정의 기능은 테이블 생성, 생성된 테이블 구조의 변경, 테이블 삭제로 분류할 수 있다.

 

테이블 생성

CREATE TABLE 테이블_이름(

            1 속성_이름  데이터_타입 [NOT NULL] [DEFAULT 기본_값]

            2 [PRIMARY KEY (속성_리스트)]

            3 [UNIQUE (속성_리스트)]

            4 [FOREIGN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트)]

                 [ON DELETE 옵션] [ON UPDATE 옵션]

            5 [CONSTRAINT 이름] [CHECK(조건)]

);

1. 테이블을 구성하는 각 속성의 이름가 데이터 타입, 기본적인 제약 사항을 정의한다.

2. 기본키로 테이블에 하나만 존재할 수 있다.

3. 대체키로 테이블에 여러 개 존재할 수 있다.

4. 외래키로 테이블에 여러 개 존재할 수 있다.

5. 데이터 무결성을 위한 제약조건으로 테이블에 여러 개 존재할 수 있다.

 

SQL 문은 세미콜론(;)으로 문장 끝을 표시한다.

SQL 문에 사용되는 키워드는 대소문자를 구분하지 않는다.

 

속성의 정의

테이블을 구성하는 속성은 널 값을 허용한다. 

널 값을 허용하지 않으려면 NOT NULL 키워드를 표기하여야 한다.

 

데이터 타입 의미
INT 또는 INTEGER 정수
SMALLINT INT보다 작은 정수
CHAR(n) 또는 CHARACTER(n) 길이가 n인 고정 길이의 문자열
VARCHAR(n) 또는
CHARACTER VARYING(n)
최대 길이가 n인 가변 길이의 문자열
NUMERIC(p,s)또는 DECIMAL(p,s) 고정 소수점 실수
p는 소수점을 제외한 전체 숫자의 길이고, s는 소수점 이하 숫자의 길이
FLOAT(n) 길이가 n인 부동 소수점 실수
REAL 부동 소수점 실수
DATE 연, 월, 일로 표현되는 날짜
TIME 시, 분, 초로 표현되는 시간
DATETIME 날짜와 시간

속성에 기본 값을 지정해두지 않으면 값을 입력하지 않았을 때 널 값이 저장된다.

DEFAULT로 기본 값을 지정할 수 있다.

 

키의 정의

  • 기본키

PRIMARY KEY 키워드를 사용해 지정한다.

기본키는 반드시 하나만 지정하고 여러 개의 속성으로 구성할 수도 있다.

  • 대체키

UNIQUE 키워드를 사용해 지정한다.

한테이블에 여러 개 지정할 수 있고, 유일성을 가져야 하며 기본키와 같이 유일하게 식별하는 특성이 있다.

  • 외래키

FOREIGN KEY 키워드를 사용해 지정한다.

출처를 분명히 밝혀야 한다. 어떤 테이블의 무슨 속성을 참조하는지 REFERENCES 키워드 다음에 명확하게 제시해야 한다.

 

외래키를 사용하여 만든 테이블의 투플을 삭제할 때는 다음 방법 중 하나를 사용한다.

 

ON DELETE NO ACTION : 투플을 삭제하지 못하게 한다.

테이블을 만들 때 지정하지 않으면 기본으로 선택한다.

 

ON DELETE CASCADE : 관련 투플을 함께 삭제한다.

 

ON DELETE SET NULL : 관련 투플의 외래키 값을 NULL로 변경한다.

 

ON DELETE SET DEFAULT : 관련 투플의 외래키 값을 미리 지정한 기본 값으로 변경한다.

 

참조되는 테이블의 투플이 변경될 때도 다음 네 가지 중 한 가지 방법을 사용한다.

 

ON UPDATE NO ACTION : 투플을 변경하지 못하도록 한다.

테이블을 만들 때 지정하지 않으면 기본으로 선택한다.

 

ON UPDATE CASCADE : 관련 투플에서 외래키 값을 함께 변경한다.

 

ON UPDATE SET NULL : 관련 투플의 외래키 값을 NULL로 변경한다.

 

ON UPDATE SET DEFAULT : 관련 투플의 외래키 값을 미리 지정한 기본 값으로 변경한다.

 

 

CHECK 키워드를 사용해 특성 속성에 대한 제약조건을 지정할 수 있다.

그러면 테이블에는 CHECK 키워드로 지정한 제약조건을 만족하는 투플만 존재하게 된다.

 

CHECK 키워드를 사용해 지정한 제약 조건에 CONSTRAINT 키워드와 함께 고유의 이름을 부여할 수도 있다.

 

테이블 생성의 예