[ oracle ] 테이블 생성 및 제약 조건( constraint )
페이지 정보
작성자 웹지기 댓글 0건 조회 1,065회 작성일 20-12-11 17:21본문
무결성을 보장하기 위한 제약조건을 거는 것.
제약 조건은 테이블 레벨로 규칙을 적용
제약 조건은 종속된 테이블의 삭제를 방지
제약조건은 컬럼에 제약을 건다.
제약조건에 이름을 지정하지 않으면 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 : 종속 외래 키 값을 널로 변환 합니다.
댓글목록
등록된 댓글이 없습니다.