데이터베이스/MySQL2011. 8. 26. 14:21
외부의 테이블을 참조

참조키는 테이블의 한 열로 다른 테이블의 기본키를 가르킵니다.

참조키는 연결되는 기본키와 다른 이름일 수도 있습니다.

차몾키에서 참조하는 기본키는 부모키(parent key)라고도 합니다. 부모키가 있는 테이블을 부모 테이블(parent table)이라고 합니다.

참조키는 한 테이블의 열들이 다른 테이블의 열과 연결되도록 하는데 사용할 수 있습니다.

기본키는 null일 수 없지만 참조키 값은 null일 수 있습니다.

참조키는 유일할 필요가 없습니다 - 실제로 유일하지 않은 경우가 많습니다.

참조값이 NULL이라고 부모 테이블에 연결되는 기본키가 없다는 것이 아닙니다.
하지만 제약조건(constraint)을 사용하여 참조키가 항상 의미있는 값인 부모 테이블의 값을 갖도록 할 수 있습니다.


참조키 제약조건(CONSTRAINT)

테이블을 만들어 참조키 역활을 하는 열을 만들 수 있지만 CREATE나 ALTER 명령을 이용하여 참조키 설정을 하지 않으면 참조키가 아닙니다. 키는 제약조건이라는 구조 안에 생성됩니다.

참조키의 값으로는 부모 테이블에 존재하는 키의 값만을 넣을 수 있습니다. 이를 참조 무결성(referential intefrity)이라고 합니다.

참조키를 테이블 안의 제약조건으로 생성하면 여러 장점이 있습니다.
규칙을 위반하면 에러가 발생하여 실수로 테이블의 규칙을 위반하는 것을 막을 수 있습니다.

참조키를 사용하여 부모 테이블의 유일한 값을 참조할 수 있습니다.
참조키의 값이 부모 테이블의 기본키일 필요는 없지만 유일해야 합니다.


참조키가 있는 테이블 생성
CREATE TABLE interests {
int_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
interest VARCHAR(50) NOT NULL,
contact_id INT NOT NULL,
CONSTRAINT my_contacts(참조하는 테이블 이름)_contact_id(키의 이름)_fk(제약조건)
FOREIGN KEY (contact_id)(괄호 안의 열 이름은 참조키가 됩니다.)
REFERENCES my_contacts(참조키가 있는 테이블 이름) (contact_id)(참조키가 있는 테이블의 열 이름)






Posted by 건깡