개발/SQL

MySQL - Join 을 위한 외래키(fk),참조 변경,삭제 방법

웅'jk 2022. 12. 8. 12:06

join은 테이블을 합칠때 사용하는 방법이다.

 

테이블을 합치기 위해서는 두 테이블 데이터간에 겹침(공유)이 필요하다.

 

테이블의 pk 값을 또 다른 테이블이 fk 로 가지고 있으면 가능하며,

란 foreign key 로 외래키, 다른 테이블에서 가져온 데이터 란 뜻의 컬럼이 필요하다.

 

# 코드는 create 할때 작성하거나 alter 문으로 가능하다
foreign key(column) reference another table( pk )

 

예시) foreign key(customer_id) reference orders(id)

오더의 아이디를 fk 로 커스토머 id 란 이름으로 가져온단 의미이다.

 

foreign key 를 설정하면 foreign key로 가져온 pk값을 삭제 하거나 변경할때 다음 과같이 설정이 가능하다.

# fk 설정 뒤에 on으로 붙혀사용한다.
foreign key(column) reference another table( pk ) 
# delete 시 어떻게 처리할 것인가.
on delete 속성
# update 시 어떻게 처리할 것인가.
on update 속성

속성

1. RESTRICT : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 변경/삭제가 취소된다.
2. CASCADE : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 함께 변경/삭제된다.
3. NO ACTION : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 변경/삭제하지 않는다.
4. SET NULL : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 참조하고 있는 값은 NULL이 된다.