데이터베이스 제약조건
제약조건이란 데이터의 무결성을 지키기위해 입력받은 데이터에 대한 제한을 두는 것을 의미합니다. 제약조건을 통하여 검사를 진행하여 어떤 조건을 만족하였을 경우 입력이 되도록 제약할 수 있습니다. 이러한 제약조건의 종류에는 어떤 것들이 있을까요?
제약조건의 종류
1. NOT NULL : 제약조건을 설정 시, 해당필드는 NULL 값을 저장할 수 없게 하는 제약조건입니다.
Create Table 테이블(
필드명 INT NOT NULL //해당 필드는 Null값 저장x
);
2. UNIQUE : 제약조건을 설정 시, 중복된 값을 저장할 수 없게 하는 제약조건입니다.
//기본적인 Unique
Create Table 테이블(
필드명 INT UNIQUE
);
//제약조건에 이름부여(constraint)
Create Table 테이블(
필드명 INT ,
...
CONSTRAINT 제약조건 UNIQUE 필드명
);
3. PRIMARY KEY : 기본키를 지정하는 제약조건으로, 해당 필드는 NOT NULL과 UNIQUE 제약조건의 특성을 모두 가집니다.
//기본적인 Primary
Create Table 테이블(
필드명 INT PRIMARY KEY
);
//제약조건에 이름부여(constraint)
Create Table 테이블(
필드명 INT ,
...
CONSTRAINT 제약조건 PRIMARY KEY 필드명
);
4. FOREIGN KEY : 한 테이블을 다른 테이블과 연결하여 외래키를 지정하는 제약조건으로, 해당 테이블은 다른 테이블에 의존됩니다.
Create Table 테이블(
필드명 INT ,
...
CONSTRAINT 제약조건 FOREIGN KEY (필드명)
REFERENCES 테이블명 (필드명)
);
이 경우 특정 테이블의 삭제 및 수정을 진행할 때, 연관된 필드가 어떤 동작을 수행할지 지정해 줄 수 있습니다. 아래는 예제코드입니다.
//삭제 및 수정 시 연관되어있는 필드 같이 삭제
ON DELETE CASCADE
ON UPDATE CASCADE
//삭제 및 수정 시 연관되어있는 필드 null
ON DELETE SET NULL
ON UPDATE SET NULL
//삭제 및 수정 시 연관되어있는 필드 기본값으로 설정
ON DELETE SET DEFAULT
ON UPDATE SET DEFAULT
//참조하는 테이블에 데이터 남아있으면 삭제 불가
ON DELETE RESTRICT
ON UPDATE RESTRICT
5. DEFAULT : 해당 필드의 디폴트값을 설정할 수 있게 해주는 제약조건입니다.
Create Table 테이블(
필드명 INT DEFAULT '기본값'
);
'BackEnd > Database' 카테고리의 다른 글
NoSQL이란? (0) | 2022.03.14 |
---|---|
[MySQL] 집계함수 (0) | 2021.12.16 |
[MySQL]MySQL 생성,삭제,변경 (0) | 2021.12.14 |
[MySQL] Table 조회/삽입/삭제/갱신 (0) | 2021.12.13 |
[MySQL] DBMS란?_MySQL 설치 (0) | 2021.12.12 |
댓글