본문 바로가기

DB

관계실습(부서,사원,프로젝트,진행)

-- 테이블 삭제
DROP TABLE PROCEEDING_TBL;
DROP TABLE PROJECT_TBL;
DROP TABLE EMPLOYEE_TBL;
DROP TABLE DEPARTMENT_TBL;

-- 부서 테이블 생성
CREATE TABLE DEPARTMENT_TBL (
    DEPT_NO       VARCHAR2(15 BYTE) NOT NULL
  , DEPT_NAME     VARCHAR2(30 BYTE) NULL
  , DEPT_LOCATION VARCHAR2(50 BYTE) NULL
  , CONSTRAINT PK_DEPT PRIMARY KEY(DEPT_NO)
);

-- 사원 테이블 생성
CREATE TABLE EMPLOYEE_TBL (
    EMP_NO     NUMBER            NOT NULL
  , DEPT_NO    VARCHAR2(15 BYTE) NULL
  , POSITION   CHAR(10 BYTE)     NULL
  , NAME       VARCHAR2(15 BYTE) NULL
  , HIRE_DATE  DATE              NULL
  , SALARY     NUMBER            NULL
  , CONSTRAINT PK_EMP PRIMARY KEY(EMP_NO)
  , CONSTRAINT FK_DEPT_EMP FOREIGN KEY(DEPT_NO) REFERENCES DEPARTMENT_TBL(DEPT_NO) ON DELETE SET NULL  --  부서가 삭제되면 사원들의 해당 부서 정보만 NULL처리한다.
);

-- 프로젝트 테이블 생성
CREATE TABLE PROJECT_TBL (
    PJT_NO      NUMBER            NOT NULL
  , PJT_NAME    VARCHAR2(30 BYTE) NULL
  , BEGIN_DATE  DATE              NULL
  , END_DATE    DATE              NULL
  , CONSTRAINT PK_PJT PRIMARY KEY(PJT_NO)
);

-- 프로젝트진행 테이블 생성
CREATE TABLE PROCEEDING_TBL (
    PCD_NO    NUMBER NOT NULL
  , EMP_NO    NUMBER NOT NULL
  , PJT_NO    NUMBER NOT NULL
  , PJT_STATE NUMBER NOT NULL
  , CONSTRAINT PK_PCD PRIMARY KEY(PCD_NO)
  , CONSTRAINT FK_EMP_PCD FOREIGN KEY(EMP_NO) REFERENCES EMPLOYEE_TBL(EMP_NO) ON DELETE CASCADE  -- 사원이 삭제되면 프로젝트진행 명단에서 함께 삭제된다.
  , CONSTRAINT FK_PJT_PCD FOREIGN KEY(PJT_NO) REFERENCES PROJECT_TBL(PJT_NO) ON DELETE CASCADE  -- 프로젝트가 삭제되면 프로젝트진행 명단에서 함께 삭제된다.
);

'DB' 카테고리의 다른 글

형변환 함수  (0) 2023.09.30
DQL 예제(hr)  (0) 2023.09.30
DML(학생,교수,강의,수강신청,과목)  (0) 2023.09.30
DDL(국가,선수,일정,종목)  (0) 2023.09.30
DDL (은행,고객)  (0) 2023.09.30