[ oracle ] 테이블 생성 및 제약 조건( constraint )
작성일 20-12-11 17:21
페이지 정보
작성자 웹지기 조회 1,064회 댓글 0건본문
무결성을 보장하기 위한 제약조건을 거는 것.
제약 조건은 테이블 레벨로 규칙을 적용
제약 조건은 종속된 테이블의 삭제를 방지
제약조건은 컬럼에 제약을 건다.
제약조건에 이름을 지정하지 않으면 Oracle server 사 sys_Cn 형식의 이름을 생성
(이름을 지정하자)
제약조건 생성시기
- 테이블이 생성될 때,
- 테이블이 생성된 후
제약 조건과 설명
- NOT NULL ( 반드시 값이 있어야 한다. NULL값을 지정하지 못하도록.. )
- UNIQUE ( 중복을 허용하지 않겠다, NULL 허용 )
- PRIMARY KEY ( 반드시 값이 있어야 하고 NULL 허용안됨 )
- FOREIGN KEY ( 참조키, 외래키 - PRIMARY KEY와 UNIQUE 로 지정된 것만 가능 )
- CHECK ( 조건을 줘서 조건에 맞는 데이터만 처리 하겠다 )
제약 조건 사용 방법
(CONSTRAINT 제약조건이름 제약조건유형(부여할컬럼명))
마지막에 선언하는 방법 - 테이블레벨
- CREATE TABLE test
(
a number(3),
b number(3),
CONSTRAINT test_a_pk PRIMARY KEY(a),
CONSTRAINT test_b_un UNIQUE(b)
);
컬럼에 직접 선언하는 방법 - 컬럼레벨
- CREATE TABLE test
(
a number(3) CONSTRAINT test_a_pk PRIMARY KEY,
b number(3)
);
NOT NULL은 무조건 컬럼뒤에 붙인다.
- CREATE TABLE test
(
a number(3) CONSTRAINT test_a_pk PRIMARY KEY(a) NOT NULL,
b number(3)
);
- CREATE TABLE test
(
a number(3) NOT NULL,
b number(3) NOT NULL,
CONSTRAINT test_a_pk PRIMARY KEY(a)
);
FOREIGN KEY 제약 조건
(참조할 테이블의 조건도 같이 적어줘야 한다.)
- CREATE TABLE test
(
a number(3) NOT NULL,
b number(3) NOT NULL,
CONSTRAINT test_a_fk FOREIGN KEY (a) REFERENCES departments(department_id)
);
테이블 생성 후 제약조건 넣는 방법
- ALERT TABLE 테이블명
ADD 제약조건 ;
제약조건 삭제
- 제약조건의 이름을 가지고 삭제
ALTER TABLE employees
DROP CONSTAINT mep_manager_fk ;
- CASCADE 전체삭제
ALTER TABLE departments
DROP PRIMARY KEY CASCADE ;
- CASCADE CONSTRAINT 는 FK 삭제
ALTER TABLE test1
DROP (pk) CASCADE CONSTRAINT ;
FOREIGN KEY 제약 조건
- FOREIGN KEY : 테이블 제약조건 레벨로 자식 테이블의 열을 정의합니다.
- REFERENCES : 부모 테이블 및 부모 테이블에서의 해당 열을 식별합니다.
- ON DELETE CASCADE : 부모 테이블의 행이 삭제되는 경우 자식 테이블의 종속 행을 삭제합니다.
- ON DELETE SET NULL : 종속 외래 키 값을 널로 변환 합니다.
추천0
비추천 0
댓글목록
등록된 댓글이 없습니다.