1 : M
PK : FK
부모 : 자식
-- 자식 먼저 지우기
DROP TABLE STUDENT_T;
-- 부모 나중에 지우기
DROP TABLE SCHOOL_T;
-- 부모 먼저 만들기
CREATE TABLE SCHOOL_T (
SCH_CODE NUMBER NOT NULL
, SCH_NAME VARCHAR2(10 BYTE) NOT NULL
, CONSTRAINT PK_SCH PRIMARY KEY(SCH_CODE) -- 제약조건의 이름은 PK_SCH, SCH_CODE에 PRIMARY KEY 지정
);
-- 자식 나중에 만들기
CREATE TABLE STUDENT_T (
STU_NO NUMBER NOT NULL
, SCH_CODE NUMBER
, STU_NAME VARCHAR2(10 BYTE) NOT NULL
, CONSTRAINT PK_STU PRIMARY KEY(STU_NO) -- 제약조건의 이름은 PK_STU, STU_NO에 PRIMARY KEY 지정
, CONSTRAINT FK_SCH_STU FOREIGN KEY(SCH_CODE) REFERENCES SCHOOL_T(SCH_CODE) ON DELETE CASCADE -- 제약조건의 이름은 FK_SCH_STU, SCH_CODE는 SCHOOL_T 테이블의 SCH_CODE를 참조한다.
);
-- 삭제는 생성의 역순으로 진행
DROP TABLE ENROLL_T;
DROP TABLE SUBJECT_T;
DROP TABLE UNIV_STUDENT_T;
-- 학생 테이블
CREATE TABLE UNIV_STUDENT_T (
STU_NO NUMBER NOT NULL
, STU_NAME VARCHAR2(10 BYTE) NOT NULL
, AGE NUMBER
, CONSTRAINT PK_UNIV_STU PRIMARY KEY(STU_NO)
);
-- 과목 테이블
CREATE TABLE SUBJECT_T (
SBJ_CODE VARCHAR2(5 BYTE) NOT NULL
, SBJ_NAME VARCHAR2(10 BYTE) NOT NULL
, PROFESSOR VARCHAR2(10 BYTE) NOT NULL
, CONSTRAINT PK_SBJ PRIMARY KEY(SBJ_CODE)
);
-- 수강신청 테이블
CREATE TABLE ENROLL_T (
EN_NO NUMBER NOT NULL
, STU_NO NUMBER
, SBJ_CODE VARCHAR2(5 BYTE)
, CONSTRAINT PK_EN PRIMARY KEY(EN_NO)
, CONSTRAINT FK_UNIV_STU_EN FOREIGN KEY(STU_NO) REFERENCES UNIV_STUDENT_T(STU_NO)
, CONSTRAINT FK_SBJ_EN FOREIGN KEY(SBJ_CODE) REFERENCES SUBJECT_T(SBJ_CODE)
);
티스토리
-관계실습(부서,사원,프로젝트,진행)
https://hyeonju50.tistory.com/16