오라클에서는
데이터의 무결성을 유지하기 위해
제약조건을 사용할 수 있다.
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 |