외래키(FOREIGN KEY)
: 테이블과 테이블을 연결하는데 사용
연결된 테이블에 있는 데이터만 입력이 가능함forein key 문법을 잘 기억해야 함
- * foreign key(식별되는 컬럼) references 참조 테이블명 (식별되는
사원 테이블에서 식별 가능한 키를 사원게시판 테이블에서의 항목이 외래키로 불림
참조하는 테이블의 해당 컬럼이 기본키가 무조건 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와 관련이 있음
주의 사항: 항목명은 똑같지 않아도 되고 데이터 타입이 일치해야 함
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: 한 테이블에 수정사항을 연결된 테이블에도 적용
사원 테이블과 사원 게시판 테이블 생성
외래키 사용
- * 테이블 생성시) on update cascade: data를 수정해도 참조받는 테이블에서 자동 업데이트 됨
자동 업데이트
참조하는 테이블의 data 삭제시 오류 발생
- * 테이블 생성시) ON DELETE SET null: data를 삭제해도 자동 반영되고 흔적을 남김
IN DELETE FROM 참조하는 테이블명 WHERE 항목명 = 조건;
참조하는 테이블의 data 삭제
삭제된 흔적이 남음
Share article