본문 바로가기

내일배움캠프/Today I Learned

[내배캠] 나의 스물네번째 회고록

 👉문제 )  STUDENT 테이블에서 s1 수강생을 삭제했을 때 EXAM에 있는 s1수강생의 시험성적과 MANAGER의

       managerA가 관리하는 수강생 목록에 자동으로 삭제될 수 있도록 하세요.

  • ALTER, DROP, MODIFY, CASCADE 를 사용하여 EXAM, MANAGER 테이블을 수정합니다 

답안) 

 

ALTER TABLE EXAM DROP CONSTRAINT exam_fk_student_code;

-> EXAM 테이블의 exam_fk_student_code 컬럼에 관하여  CONSTRAINT(무결성 제약조건) 삭제 


ALTER TABLE EXAM ADD CONSTRAINT exam_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(student_code) ON DELETE CASCADE;

-> EXAM 테이블 exam_fk_student_code 컬럼과 STUDENT 테이블의 student_code 과의  FK(외래키) 참조 제약조건을 삭제 

** 즉, EXAM테이블이 STUDENT테이블의 student_code 값을 참조하고 있는 FK 참조 조건을 삭제해주는 것 


ALTER TABLE MANAGER DROP CONSTRAINT manager_fk_student_code;

-> MANAGER 테이블의 manager_fk_student_code 컬럼 무결성 제약조건 삭제


ALTER TABLE MANAGER ADD CONSTRAINT manager_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(student_code) ON DELETE CASCADE;

-> MANAGER 테이블 manager_fk_student_code 컬럼과 STUDENT테이블의 student_code과의 FK(외래키) 참조 제약조건을 삭제

** 즉, MANAGER 테이블이 STUDENT테이블의 student_code 값을 참조하고 있는 FK 참조 조건을 삭제해주는 것 

DELETE FROM STUDENT WHERE student_code = 's1';

-> 비로소 STUDENT테이블에 student_code = 's1'을 삭제 할 수 있음(EXAM, MANAGER테이블에서도 S1이 삭제된다)

 

 

@ 추가적으로 제약조건이 궁금하면 보기!!! -> https://dinggur.tistory.com/107

 

SQL정리 10장 제약조건 (Constraint)

제약조건 (Constraint) - 틀린데이터는 못들어 오게 막고, 맞는 데이터만 들어오게 해주기 위해 사용. - 데이터의 정확성과 일관성을 보장하기 위해 각 칼럼에 정의하는 규칙. - 딕셔너리에 저장됨 -

dinggur.tistory.com

@ 추가적으로 Casecade 궁금하면 보기!!!  -> https://papimon.tistory.com/90

 

참조 무결성과 Cascade 옵션

안녕하세요! 조엘입니다! 관계형 데이터베이스를 다루다보면 CASCADE를 활용할 일이 많아요. 참조의 관계를 맺은 데이터베이스를 신뢰성 있는 상태로 유지하기 위함인데요! CASCADE 옵션이 무엇을

joel-dev.site