본문 바로가기
DB/DBMS

DDL과 제약조건2

by 코딩하는 랄로 2023. 8. 12.
728x90

2023.08.12 - [Programming 공부/DBMS] - DDL과 제약조건1

 

DDL과 제약조건1

제약조건 DDL에서 테이블을 생성할 때 CONSTRAIN(제약조건)올 통해 테이블의 칼럼에 대해서 조건을 부여할 수 있다. 이전 글에서 배운 PK와 FK 또한 이러한 제약조건에 해당한다. TABLE생성 시 제약조

codingralro.tistory.com

 

저번 글에서는 제약조건의 기본 개념과 사용방법에 대해서 알아보았다. 이번 글에서는 기본적인 제약 조건으로는 무엇이 있는지에 대해서 자세히 알아보겠다.

 

 

PK & FK

이전에서 다루었던 내용으로 PK(primary key)는 null값을 허용하지 않는 중복이 없는 고유한 값으로 이 값을 다른 테이블에서 참조할 경우 FK(foreign key)로 설정하여야 한다.

 

PK로 설정된 값에 중복된 값을 넣거나 null값을 넣게 되면 제약 조건에 맞지 않아 오류가 발생하게 된다. FK로 설정된 값의 경우, 참조한 TABLE의 PK값에 없는 값을 집어넣게 될 경우에도 오류가 발생하니 이 점 주의하여야 한다.

 

제약조건을 선언하는 방식에는 이전 글에서 살표보았듯이 두가지가 있지만 이번 글에서는 CONSTRAINT 문법을 사용하여 선언하여 주겠다.

 

CONSTRAINT 제약조건이름 PRIMARY KEY(컬럼이름)
CONSTRAINT 제약조건이름 FOREIGN KEY(컬럼이름) REFERENCES 참조테이블이름(참조할 컬럼이름)

 

FK는 다른 테이블의 PK를 참조하는 것이기 때문에 PREFERENCES를 통해 참조할 테이블과 컬럼을 지정해주어야 한다.

 

 

CHECK

CHECK는 해당 칼럼에 입력된 값이 다음의 조건식을 만족하는지 CHECK를 하는 문법이다. 

CREATE TABLE USER (
ID NUMBER(20),
NAME VARCHAR2(200),
GENDER CHAR(1) DEFAULT 'M' 
CONSTRAINT GENDER_CHECK CHECK (GENDER = 'M' OR GENDER = 'W')
)

GENDER_CHECK라는 이름으로 제약조건을 추가하여 GENDER가 'M' 또는 'W'일 때에는 정상적으로 값이 입력이 되지만 아니면 에러를 발생시킨다.

 

위의 예시에서 DEFAULT 문법은 해당하는 칼럼에 아무런 값도 입력이 되지 않았을 경우 자동적으로 DEFAULT를 통해 지정해준 값이 할당되게 한다.

 

 

NOT NULL

NOT NULL은 이름 그대로 NULL을 허용하지 않겠다는 제약 조건이다. NOT NULL로 선언된 칼럼에 NULL값이 들어올 경우 에러가 발생하는 것이다.

 

NOT NULL의 사용방법은 칼럼 바로 옆에 선언해준다.(CONSTRAINT문법 X)

CREATE TABLE USER (
ID NUMBER(20) PRIMARY KEY,
NAME VARCHAR2(200),
GENDER CHAR(1) NOT NULL,
CONSTRAINT GENDER_CHECK CHECK(GENDER IN ('M', 'W'))
)

GENDER를 NOT NULL로 선언해 주어 NULL값이 들어오는 값을 막고 CHECK를 이용하여 M 또는 W만 입력 받도록 하였다.

 

 

 

2023.08.12 - [Programming 공부/DBMS] - 제약조건과 무결성

 

제약조건과 무결성

데이터 무결성이란 지금까지 DDL을 이용하여 테이블에서 제약조건을 다루는 법을 알아보았다. 제약조건은 DBMS에서 중요한 개념 중 하나인데 왜 제약조건을 사용해야 하는지에 대해서 알고있어

codingralro.tistory.com

 

728x90

'DB > DBMS' 카테고리의 다른 글

DBMS 모델링  (0) 2023.08.13
제약조건과 무결성  (0) 2023.08.12
DDL과 제약조건1  (0) 2023.08.12
DDL과 자료형  (0) 2023.08.12
TABLE과 기본 개념  (0) 2023.08.10