Foreign Key는 한 테이블의 열이 다른 테이블의 기본 키(primary key)나 고유 키(unique key)를 참조하도록 하는 제약 조건입니다.기본 문법:예:
ALTER TABLE 자식_테이블
ADD CONSTRAINT 제약조건_이름
FOREIGN KEY (자식_열)
REFERENCES 부모_테이블(부모_열);
ALTER TABLE 주문
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id)
REFERENCES 고객(customer_id);
ON DELETE CASCADE: 부모 테이블에서 레코드가 삭제되면 자식 테이블에서도 자동으로 삭제됩니다.
ALTER TABLE 주문
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id)
REFERENCES 고객(customer_id)
ON DELETE CASCADE;
ON DELETE SET NULL: 부모 테이블에서 레코드가 삭제되면 자식 테이블의 외래 키 값이 NULL로 설정됩니다.
ALTER TABLE 주문
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id)
REFERENCES 고객(customer_id)
ON DELETE SET NULL;
예시 1: 고객 테이블과 주문 테이블의 관계.
고객 테이블:
CREATE TABLE 고객 (
customer_id INT PRIMARY KEY,
name VARCHAR(100)
);
주문 테이블:
CREATE TABLE 주문 (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES 고객(customer_id)
);
예시 2: 부모와 자식 테이블에서의 참조 무결성 보장.
제약조건 조회:
SELECT * FROM user_constraints WHERE constraint_type = 'R';