[MySQL] 데이터베이스 제약조건이란?
본문 바로가기
BackEnd/Database

[MySQL] 데이터베이스 제약조건이란?

by liveloper jay 2021. 12. 15.

데이터베이스 제약조건

제약조건이란 데이터의 무결성을 지키기위해 입력받은 데이터에 대한 제한을 두는 것을 의미합니다. 제약조건을 통하여 검사를 진행하여 어떤 조건을 만족하였을 경우 입력이 되도록 제약할 수 있습니다. 이러한 제약조건의 종류에는 어떤 것들이 있을까요?

 

 

 

제약조건의 종류

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

댓글