오라클에서는
데이터의 무결성을 유지하기 위해
제약조건을 사용할 수 있다.
PRIMARY KEY
pk : primary key
중복이 없는 데이터로 기본키이다.
중복이 없기 때문에 대표격으로 사용된다.
우리가 많은 사람들 중에서 특정인을 구분할 때
주민등록번호를 사용한다.
이름과 나이는 중복 사용이 많아 구분이 어렵지만
주민등록번호는 한 사람만 가지는
고유한 번호이기 때문에 식별에 적합하다.
이처럼 primary key 기본키는
주민등록번호, ID, 게시물 번호처럼
중복되지 않으며 NULL값을 허용하지 않는
고유한 데이터에 설정하는 제약조건이다.
| CONSTRAINT 제약조건명 PRIMARY KEY(컬럼명) |
NOT NULL
nn : not null
NOT NULL로 제약조건을 설정하면 공백을 사용할 수 없다.
회원가입을 할 때 어떤 데이터는 입력하지 않아도 되지만,
어떤 데이터는 입력하지 않으면 다음 창으로 넘어가지 않는다.
이런 경우 NOT NULL로 제약 조건을 설정했다고 볼 수 있다.
이름, 전화번호 , 주소와 같이 꼭 필요한 정보에는
NOT NULL을 설정해서 사용자에게 값을 요청할 수 있다.
| 컬럼명 데이터형 CONSTRAINT 제약조건명 NOT NULL |
UNIQUE
uk : unique
UNIQUE는 중복이 없는 데이터로 후보키로 사용된다.
회원가입을 할 때 이메일이나 닉네임, 핸드폰 번호 등은
중복 확인을 하는 경우가 많다.
중복을 허용하지 않기 때문에 후보키로 사용된다.
후보키는 누군가를 식별하고자 할 때
기본키 다음으로 사용되는 기본키 격의 후보를 말한다.
중복이 없다는 점에서 기본키와 무엇이 다를까 싶겠지만
UNIQUE는 NULL값이 허용된다.
| CONSTRAINT 제약조건 명 UNIQUE(컬럼명) |
FORIGN KEY
fk : foreign key
우선 외래키는 제약조건은 아니다.
테이블 간의 관계를 생성하면 외래키가 발생된다.
테이블이 어느 한쪽 테이블을 참조한다면 관계를 설정하게 된다.
만약 참조하려는 테이블에 기본키가 있었다면
그 기본키가 새롭게 생성하는 테이블의 외래키가 된다.
기본키를 가지고 있는 부모 테이블이 생성된 후
부모 테이블을 참조하는 자식 테이블에 외래키가 생성되는 것이다.

이처럼 부모 클래스의 ParentNo 기본키를 사용하여
자식 클래스가 관계를 맺고 있다.
자식 클래스의 ParentNo 컬럼은 외래키가 된다.
| CONSTRAINT 제약조건명 FOREIGN KEY (컬럼명) REFERENCES 참조할 테이블(컬럼명) |
DEFAULT
데이터를 입력할 때 null 값이라면 자동으로 값을 입력하도록
기본값을 설정 할 수 있다.
기본값을 설정할 때는 DEFAULT 를 사용한다.
예를 들어 날짜를 입력할 때
사용자가 값을 입력하지 않는다면
자동으로 오늘 날짜가 입력되도록
DEFAULT 값을 SYSDATE로 설정하면 된다.

CHECK
ck : check
데이터 값을 몇가지 지정할수 있다.
성별의 경우 남자, 여자 두가지 경우 밖에 없기 때문에
남자, 여자 값만 선택할 수 있도록
CHECK 설정을 통해 지정할 수 있다.
CONSTRANINT member_sex_ck CHECK(sex IN('남자','여자'))
| CONSTRAINT 제약조건명 CHECK (컬럼명 IN()) |

'Oracle' 카테고리의 다른 글
| [DB] 자바에서 오라클 DB 드라이버 연결하는 법 (MySQL) (0) | 2022.08.10 |
|---|---|
| [DB/오라클] ( CREATE, ALTER, DROP ) DDL 데이터 정의어 총정리 (0) | 2022.07.24 |
| [DB/오라클] 부속 질의 서브쿼리 완벽 정리 (스칼라, 인라인뷰) #15 (0) | 2022.07.11 |
| [DB/오라클] 테이블 생성 시 주의사항 (테이블 작성 방법) (0) | 2022.07.10 |
| [DB/오라클] 조인 완벽 정리 ( INNER 조인 OUTER 조인 ) (0) | 2022.07.09 |