1. EMPLOYEE 테이블의 구조를 복사하여 EMP_SAMPLE이란 이름의 테이블을 만드시오. 사원 테이블의 사원번호 칼럼에 테이블 레벨로 PRIMARY KEY 제약 조건을 지정하되 제약 조건 이름은 MY_EMP_PK로 지정하시오.
CREATE TABLE EMP_SAMPLE
AS
SELECT *
FROM EMPLOYEE
WHERE 1=0;
ALTER TABLE EMP_SAMPLE
ADD CONSTRAINT MY_EMP_PK PRIMARY KEY(ENO);
2. 부서 테이블의 부서번호 칼럼에 테이블 레벨로 PRIMARY KEY 제약 조건을 지정하되 제약 조건 이름은 MY_DEPT_PK로 지정하시오.
CREATE TABLE DEPT_SAMPLE
AS
SELECT *
FROM DEPARTMENT
WHERE 1=0;
ALTER TABLE DEPT_SAMPLE
ADD CONSTRAINT MY_DEPT_PK PRIMARY KEY(DNO);
SELECT TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('DEPT_SAMPLE');
3. 사원 테이블의 부서번호 칼럼에 존재하지 않는 부서의 사원이 배정되지 않도록 외래 키 제약 조건을 지정하되 제약 조건 이름은 MY_EMP_DEPT_FK로 지정하시오.
ALTER TABLE EMP_SAMPLE
ADD CONSTRAINT MY_EMP_DEPT_FK FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DNO);
SELECT TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('EMP_SAMPLE');
4. 사원 테이블의 커미션 칼럼에 0보다 큰 값만을 입력할 수 있도록 제약 조건을 지정하시오.
ALTER TABLE EMP_SAMPLE
ADD CONSTRAINT EMP_COMMISSION_MIN CHECK (COMMISSION > 0);
SELECT TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('EMP_SAMPLE');
'SQL - Oracle > 10. 데이터 무결성과 제약 조건 (CONSTRAINT)' 카테고리의 다른 글
Day 35 : Script (0) | 2021.12.06 |
---|---|
Day 35 : 연습 문제 - 제약 조건 (0) | 2021.12.06 |
Day 35 : 제약 조건 활성화 및 비활성화 (0) | 2021.12.06 |
Day 35 : 제약 조건 제거하기 (0) | 2021.12.06 |
Day 35 : 제약 조건 변경하기 (0) | 2021.12.06 |