Cracking Code

SQL - 제약 조건 본문

Database

SQL - 제약 조건

CrackCo 2020. 7. 21. 17:54
데이터베이스의 무결성을 유지하기 위해서 일종의 제약을 둡니다. 데이터베이스 제약 조건에 대해 알아봅시다.
CREATE TABLE table(
	column datatype [DEFAULT expr] -- 컬럼 LEVEL
	[CONSTRAINT column_constraint],
	...,
	[table CONSTRAINT column_constraint], -- 테이블 LEVEL
	...
);

제약 조건은 테이블 LEVEL, 컬럼 LEVEL에서 선언할 수 있습니다.

테이블 LEVEL은 모든 컬럼의 선언이 끝난 후에 제약 조건을 명시하는 것이며

컬럼 LEVEL은 컬럼의 선언과 동시에 제약 조건도 명시하는 것입니다.

🚨컬럼 LEVEL 에선 제약 조건을 하나씩만 선언할 수 있습니다.🚨

 

제약 조건의 종류

제약 조건은 CONSTRAINT 문으로 이름을 지정할 수 있습니다. (권장)

지정하지 않으면 SYS_Cn형식으로 임의 저장되기 때문에 관리가 어려워집니다.

제약 조건은 USER_CONSTRAINTS 데이터 딕셔너리에서 검색할 수 있습니다.

SELECT *
FROM USER_CONS_COLUMNS
WHERE TABLE_NAME = table;

 

DEFAULT

DEFAULT 옵션을 지정하면 해당 컬럼에 값을 입력하지 않았을 때

NULL 값이 아닌 DEFAULT 값으로 자동으로 입력됩니다.

 

NUM / NUMBER(2), WRITEDAY / DATE 를 컬럼으로 가지고 WRITEDAY의 DEFAULT 값은 현재 일시로 설정한 테이블을 만들어봅시다.

CREATE TABLE DEF_TABLE(
	NUM NUMBER(2),
    WRITEDAY DATE DEFAULT SYSDATE
);

DEF_TABLE의 NUM 컬럼만 지정하고 값을 1로 하여 행을 삽입해봅시다.

INSERT INTO DEF_TABLE(NUM)
VALUES(1);

DEF_TABLE의 모든 데이터를 출력해봅시다.

SELECT * FROM DEF_TABLE;

우리는 WRITEDAY에 값을 입력하지 않았지만 현재의 일시가 자동으로 입력된 것을 확인할 수 있습니다.

이후 게시글에선 제약 조건의 종류에 대해 알아보는 시간을 가져보도록 하겠습니다😎

'Database' 카테고리의 다른 글

SQL - UNIQUE KEY (유니크 키)  (0) 2020.07.21
SQL - PRIMARY KEY (기본키)  (0) 2020.07.21
SQL - CREATE TABLE  (0) 2020.07.21
SQL - COMMIT, ROLLBACK  (0) 2020.07.20
TRANSACTION 개요  (0) 2020.07.20
Comments