inblog logo
|
Coding_study
    SQL)MariaDB

    [MariaDB] 외래키(2)

    yuzu sim's avatar
    yuzu sim
    Nov 30, 2023
    [MariaDB] 외래키(2)
    외래키(FOREIGN KEY)
    : 테이블과 테이블을 연결하는데 사용
    연결된 테이블에 있는 데이터만 입력이 가능함forein key 문법을 잘 기억해야 함
    foreign key(식별되는 컬럼) references 참조 테이블명 (식별되는
    notion image
    사원 테이블에서 식별 가능한 키를 사원게시판 테이블에서의 항목이 외래키로 불림
    참조하는 테이블의 해당 컬럼이 기본키가 무조건 100%가 아닐 수 있음
    그럴때 empno의 제약 조건은 unique/ 식별만 되면 됨
    다른게 기본키의 경우 기본키가 되었든 아니든 unique가 되어야함
    사원테이블: create table 할때 empno int primary key 사원게시판 테이블: create table 할때 empno int foreign key(empno) references 사원테이블(empno)
    사원테이블의 empno 컬럼과 사원게시판 테이블의 empno와 관련이 있음
    사원테이블: create table 할때 empno char(4) primary key 사원게시판 테이블: create table 할때 empno char(4) foreign key(empno) references 사원테이블(eno)
     
    사원테이블의 empno 컬럼과 사원게시판 테이블의 eno와 관련이 있음
    주의 사항: 항목명은 똑같지 않아도 되고 데이터 타입이 일치해야 함
    notion image
    1번 게시판의 작성 사원을 알 수가 없음
    이미 작성한 테이블이라 문제는 없지만 이것으로 후속 작업을 할때는 문제가 생김
    사원 테이블이 수정될대 사원 게시판에 내용이 자동으로 바뀌는 것도 있음
    사원테이블: create table 할때 empno char(4) primary key 사원게시판 테이블: create table 할때 empno char(4) foreign key(empno) references 사원테이블(eno) on update cascade
     
    사원테이블의 empno 컬럼과 사원게시판 테이블의 eno와 관련이 있음
    사원 테이블에 update가 발생하면 사원 게시판 테이블에도 적용됨
    • * on update cascade: 한 테이블에 수정사항을 연결된 테이블에도 적용
    notion image
    notion image
    사원 테이블과 사원 게시판 테이블 생성
    notion image
    외래키 사용
    • * 테이블 생성시) on update cascade: data를 수정해도 참조받는 테이블에서 자동 업데이트 됨
    notion image
    자동 업데이트
    notion image
    참조하는 테이블의 data 삭제시 오류 발생
    • * 테이블 생성시) ON DELETE SET null: data를 삭제해도 자동 반영되고 흔적을 남김
    IN DELETE FROM 참조하는 테이블명 WHERE 항목명 = 조건;
    notion image
    참조하는 테이블의 data 삭제
    notion image
    삭제된 흔적이 남음
    Share article

    Coding_study

    RSS·Powered by Inblog