Oracle 제약조건 정리
제약조건
- 데이터를 추가, 삭제, 수정하는 가운데 DB의 무결성을 유지
- 무결성이란 DB 데이터가 정확하고 기본 규칙을 지킨다는 뜻이다
종류 | 설명 |
---|---|
NOT NULL | NULL의 저장을 허용하지 않는다(반드시 값이 존재해야 됨), 중복여부와는 상관없다 |
UNIQUE | 해당 컬럼에서 중복 데이터를 허용하지 않는다, NULL은 중복 대상에서 제외 |
PRIMARY KEY | UNIQUE + NOT NULL 제약조건을 전부 가짐, 중복 데이터 허용X NULL 허용X, 자동으로 인덱스 생성됨 |
FOREIGN KEY | 서로 다른 테이블 간 관계를 정의 함 |
CHECK | 열에 저장할 수 있는 값의 범위, 패턴을 정의할 수 있음 |
DEFAULT | 특정 열에 저장할 값이 지정되지 않았을 경우에 기본값을 지정 |
컬럼 레벨 제약 조건
- 컬럼을 생성할 때 데이터 타입 옆에 제약조건을 적는다
CREATE TABLE NAME(
ID VARCHAR(20) NOT NULL
);
테이블 레벨 방식
- 테이블 칼럼 을 전부 선언 후 제약조건을 나중에 선언하는 것
CREATE TABLE NAME(
PLAYER_ID VARCHAR(20) NOT NULL
CONSTRAINT 제약조건 이름 FOREIGN KEY(컬럼명)
REFERENCES 테이블(컬럼명)
);
테이블 수정 방식
- 테이블을 생성한 후 제약조건을 ALTER 수정하듯이 추가하는 것
CREATE TABLE NAME(
ID NUMBER,
PASS NUMBER
);
ALTER TABLE 테이블이름 ADD CONSTRAINT 제약조건 이름 PRIMARY KEY(컬럼 이름)