[sql] 외래 키 제약 조건

외래 키 제약 조건은 SQL 데이터베이스에서 관계를 유지하고 데이터 무결성을 보장하기 위해 사용되는 중요한 개념입니다. 외래 키 제약 조건은 한 테이블의 컬럼이 다른 테이블의 기본 키에 대한 참조로 사용되는 것을 의미합니다.

왜 외래 키 제약 조건을 사용해야 할까요?

외래 키 제약 조건을 사용하는 주요한 이유는 데이터 일관성을 유지하기 위해서입니다. 외래 키 제약 조건은 다음과 같은 기능을 제공합니다:

  1. 무결성: 외래 키 제약 조건은 관계형 데이터베이스의 무결성을 유지합니다. 즉, 부모 테이블과 자식 테이블 사이의 관계에서 데이터 무결성을 보장합니다.
  2. 참조 무결성: 외래 키 제약 조건은 참조 무결성을 강제하여 부모 테이블의 데이터가 변경되었을 때 자식 테이블에서 해당 데이터에 대한 영향을 받는지 여부를 검사합니다.
  3. 데이터 관계 유지: 외래 키 제약 조건은 두 테이블 사이의 관계를 유지합니다. 이를 통해 데이터의 논리적인 관계를 표현할 수 있습니다.

외래 키 제약 조건의 구문

외래 키 제약 조건을 생성하기 위해 다음과 같은 SQL 구문을 사용할 수 있습니다:

ALTER TABLE 자식테이블
ADD CONSTRAINT 제약조건명
FOREIGN KEY (외래키컬럼) REFERENCES 부모테이블(기본키컬럼);

위 구문에서 자식테이블은 외래 키 컬럼을 갖는 테이블을 의미하고, 부모테이블은 해당 외래 키 컬럼을 기본 키로 갖는 테이블을 의미합니다. 제약조건명은 외래 키 제약 조건의 이름을 지정하는 것으로, 고유하게 식별 가능해야 합니다.

외래 키 제약 조건 삭제

외래 키 제약 조건을 삭제하기 위해 다음과 같은 SQL 구문을 사용할 수 있습니다:

ALTER TABLE 자식테이블
DROP CONSTRAINT 제약조건명;

위 구문에서 제약조건명은 삭제하고자 하는 외래 키 제약 조건의 이름을 의미합니다.

예시

다음은 orders 테이블과 customers 테이블 간의 외래 키 제약 조건을 생성하는 예시입니다:

ALTER TABLE orders
ADD CONSTRAINT fk_customer_id
FOREIGN KEY (customer_id) REFERENCES customers(id);

이 예시에서 orders 테이블의 customer_id 컬럼은 customers 테이블의 id 컬럼을 참조하도록 외래 키 제약 조건이 생성되었습니다.


참고 자료: