데이터베이스 - 제약조건
2021/03/03(수)
6번째 수업
제약조건
NOT NULL/UNIQUE/PRIMARY KEY/FOREIGH KEY/CHECK
***데이터 무결성 : 데이터베이스에 저장되는 데이터의 정확성과 일관성을 보장한다는 의미
무결성을 지키기 위해 항상 유지해야하는 기본 규칙 존재
제약 조건은 이런 무결성을 위한 안전장치
1) NOT NULL
CREATE TABLE 테이블명(
필드명 자료형 NOT NULL,
.
.
.
);
--> NOT NULL을 지정한 필드는 NULL값을 넣을 수 없다
제약조건에 이름 주기
**
CREATE TABLE 테이블명(
필드명 자료형 CONSTRAINT 제약조건명 NOT NULL
.
.
.
);
--> CONSTRAINT 후에 제약조건의 이름을 정해 줄 수 있음
ALTER TABLE 테이블명
MODIFY 필드명 CONSTRAINT 제약조건명 제약조건;
--> CONSTRAINT는 생략 가능
--> 이미 설정된 제약조건을 수정할 수 있음
ALTER TABLE 테이블명
RENAME CONSTRAINT 기존제약조건명 TO 새로바꿀제약조건명;
--> ALTER 안에 RENAME을 사용해서 제약조건명 변경 가능
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명;
--> ALTER 안에 DROP을 사용해서 제약 조건 삭제 가능
2) UNIQUE
중복을 허용하지 않고자 할 때 사용 NULL값은 제외
지정 방법은 NOT NULL과 동일
3)PRIMARY KEY
유일하게 하나만 있는 값 , 데이터 중복을 허용하지 않고 NULL도 허용하지 않는다.
지정방법은 NOT NULL과 동일
CONSTRAINT 제약조건명 KEY(필드1,필드2); 2개 KEY 가능
4) FOREIGN KEY
외래키, 서로 다른 테이블 간 관계를 정의하는 데 사용하는 제약 조건
특정 테이블에서 PRIMARY KEY 제약 조건을 지정한 열을 다른 테이블의 특정 열에서 참조
외래키 생성
CREATE TABLE 테이블명 (
... 다른 열 정의 ,
열 자료 형 CONSTRAINT 제약조건 이름 REFERENCES 참조 테이블(참조할 열 ));
외래키 삭제
CONSTRAINT 제약조건명 REFERENCES 참조테이블(참조 열) ON DELETE CASCADE;
-->열데이터 삭제할 때 데이터를 참조하고 있는 데이터도 함께 삭제
외래키 삭제시 참조 데이터 NULL로 수정
CONSTRAINT 제약조건명 REFERENCES 참조테이블(참조 열) ON DELETE SET NULL;
-->참조하는 테이블의 열값을 삭제하면 참조하는 테이블의 열값이 NULL로 수정
5) CHECK
열에 저장할 수 있는 값의 범위 또는 패턴을 정의할 때 사용
예) 0~ 23까지의 숫자만 허용
체크 삽입
CREATE TABLE 테이블명 (
... 다른 열 정의 ,
열 자료 형 CONSTRAINT 제약조건 이름 CHECK (조건)
);
--> 데이터 삽입시 조건에 맞는 값만 들어갈 수 있음
6) DEFAULT
제약 조건과는 별개로 특정 열에 저장할 값이 지정되지 않았을 경우 기본값을 지정할 수 있음
CREATE TABLE 테이블명 (
... 다른 열 정의 ,
열 자료 형 DEFAULT 기본값
);