IT Study/DB

[SQL] 제약조건 추가 및 삭제 쿼리 (Feat. Elice 12주차)

짹짹체유 2023. 11. 7. 19:10

 

제약조건

  • 테이블에 잘못된 데이터가 입력되는 것을 방지하기 위한 규칙
  • 제약 조건을 통해 무결성을 지킬 수 있음

 

제약조건의 종류

  • NOT NULL
    • NULL 값 비허용
    • 데이터 입력하지 않으면 에러
    • 공백(“”) 입력해도 에러 X

 

  • UNIQUE
    • 중복되는 값 비허용
    • 똑같은 값 있으면 에러
    • NULL은 비교가 불가능해서 중복되어도 에러 발생 X

 

  • DEFAULT
    • 기본값 설정

 

  • CHECK
    • 값의 범위를 제한해서 특정 값만 허용. 제한한 값 아닌 경우 에러 발생

 

  • ENUM('A', 'B')
    • A와 B, 두 가지 값만 받을 수 있음

 

등등..

 

 

제약조건 추가 방법

1. 처음 테이블을 구성할 때 추가
2. 이미 만들어져 있는 테이블에 추가

 

 


1. 처음에 추가하는 방법

CONSTRAINT 제약조건이름 제약조건 (적용할 속성)

 

  • 단, NOT NULL과 DEFAULT는 위와 같은 형식으로 불가능
CREATE TABLE student (
	id 		INT
    name 	VARCHAR(10)	NOT NULL
    phone	VARCHAR(10)	DEFAULT '000-0000-0000'
    class	INT
);
  • 처음 추가할 때 설정하거나 아래 방식으로 추후에 추가를 해줘야 함

 

2. 만들어져 있는 테이블에 추가

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 제약조건 (속성);
// 제약조건이름은 생략 가능
  • 속성 부분에 소괄호( ) 꼭 포함시키기 !

 

  • 단, DEFAULT와 CHECK 제약조건 추가 코드 방식은 다름
// DEFAULT 제약 조건 수정
ALTER TABLE 테이블명 ALTER 속성 SET DEFAULT 기본값;

 

// CHECK 제약조건 추가
ALTER TABLE 테이블명 ADD CHECK (컬럼명 조건);
// CHECK는 ADD COLUMN이 아닌 ADD CHECK로 바로
// 컬럼명 따로 지정 없이 조건 내에서 바로

 


 

➕ 제약 조건 삭제하기

ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름;
  • 속성 없이 제약조건 이름으로만 삭제 가능
// DEFAULT 제약 조건 삭제
ALTER TABLE 테이블명 ALTER 속성 DROP DEFAULT;

 

 

#엘리스트랙 #엘리스트랙후기 #온라인코딩부트캠프 #온라인코딩학원 #개발자국비지원 #온라인코딩 #개발자부트캠프 #내일배움카드코딩 #국비지원부트캠프 #풀스택 #자바스크립트 #React #Express #Nodejs #데이터분석 #파이썬 #SQL #인공지능 #Tensorflow #딥러닝

반응형