SQL

외래키 Foreing Key

한우종 2024. 9. 10. 23:08
왜래 키(Foreing Key)
왜래키는 테이블간의 연관관계(Relation Ship)를 표현할때 사용한다.
연관관계는 대표적으로 3가지의 형태로 표현 가능하다.

① . 1:1 형태
1명의 사용자는(user) 1개의 사용자 정보(userInfo)를 가질 수 있다. 
★ 1:1 은 순정남

② . 1:N 형태
1명의 사용자는 여러개의 주문(order)을 할 수 있다.
★1:N은 한쪽이 바람피는것과 같음 😥

③ . N:M 형태
여러명의 학생은 여러개의 학원을 등록할 수 있다.
★N:M은 서로가 1:N의 관계 즉 맞바람을 피는것과 같다.🤪

 

외래 키 제약조건 심화
외래 키의 경우 다른 테이블과 관계를 맺고있는 참조데이터가 삭제(DELETE) 또는 수정(UPDATE) 될때 어떤 행위를 해야하는지 설정할 수 있다.
이런 행위를 수행하는 조건을 연계 참조 무결성 제약 조건 이라고정의한다.

 

  • 제약조건 종류

 

  • CASCADE(종속=> 부모개체에 종속되어 같이 삭제 / 변경된다.)
참조하고 있는 개체가 변경/삭제될경우 함께 변경/삭제된다.
ex: 사용자가 삭제될 경우 그 사용자의 모든 주문내역도 함께 삭제한다.

 

  • NO ACTION(조치 없음 =>자식이 집나가는 부모를 말림)
참조하고있는 개체가 변경/삭제될 경우 아무런 행위를 하지않고 에러가 발생하게 된다.
ex:사용자를 삭제할때 사용자의 주문내역이 아직 존재한다면 삭제를 막는다.

 

  • SET NULL
참조하고 있는 개체가 변경/삭제될 경우 현재 데이터를 NULL로 변경한다.
ex:사용자가 삭제되면 사용자의 주문내역의 "사용자ID" 는 NULL로 변경된다.

 

  • SET DEFAULT(기본값=>경매진행중 입찰자가 사라져서 원가로 돌아감)
참조하고있는 개체가 변경/삭제될 경우 현재 데이터를 기본값 으로 변경한다.
ex: 사용자가 삭제되면 사용자의 주문내역의 "사용자ID"는 기본값으로 변경된다.