본문 바로가기
Web Programing/DB

Oracle 외래 키(Foreign Key, FK) 생성 추가 삭제 SQL

by 기록하는 초보 2024. 3. 15.
반응형

데이터베이스에서 "PK(Primary Key, 기본키)"와 "FK(Foreign Key, 외래키)"는 데이터의 무결성을 유지하고 관리하는데 필수적인 요소로 이번 글에서는 외래키에 대해서 알아보겠습니다.

외래키(FK) 생성, 추가, 삭제

외래키(Foreign Key, FK)

외래키는 한 테이블의 필드가 다른 테이블의 기본키를 참조하여 두 테이블 간의 관계를 연결하는 역할을 합니다. 이를 통해 데이터 간의 연관성을 명확하게 하며, 데이터의 무결성을 유지할 수 있습니다.

  • 테이블 중에서 기본키(Primary Key) 값이 있는 테이블을 다른 테이블 간 연결을 설정할 때 사용됩니다.
  • PK(Primary Key, 기본키)를 가지고 오는 테이블이 FK(Foreign Ket, 외래키)를 가지게 됩니다.
  • 기본키(PK)를 가지고 있는 테이블(부모테이블)이 생성되어야, 외래키(FK)를 가지고 있는 테이블(자식테이블)을 생성할 수 있습니다.
  • Foreign Key의 이름은 중복되서는 안됩니다.

 

외래키(Foreign Key) 생성하기

예시에서 참조할 부모테이블에 기본키를 'midx'라는 기본키(PK)를 생성했습니다.

--기본키(Primary Key, PK)를 가지고 있는 부모테이블 생성
create table member(
memberindex number not null primary key,
name varchar2(10) not null,
id varchar2(10) not null,
pw varchar2(10) not null
);

 

1. 테이블을 생성하면서 외래키(FK) 생성하기

create table board(
bidx number not null primary key,
title varchar2(10) not null,
content varchar2(10) not null,
delYN varchar2(10) not null,
memberindex number not null, --외래키로 지정할 컬럼
 --외래키 지정문
CONSTRAINT fk_memberindex foreign key(memberindex) references member (memberindex)
--CONSTRAINT [FK명] foreign ([FK가 될 컬럼명]) reference [FK로 연결할 PK가 위치한 부모테이블] ([PK컬럼명])
);
반응형

2. 테이블 생성 후에 외래키(FK) 생성하기

ALTER TABLE board
ADD CONSTRAINT fk_memberindex foreign Key(memberindex) references member (memberindex);
--ALTER TABLE [FK를 생성시킬 테이블]
--ADD CONSTRAINT [FK명] foreign key (FK로 지정할 컬럼명) references [PK가 위치하는 부모테이블] ([PK컬럼명])

FK로 지정할 컬럼이 미리 존재하는 상태에서 가능합니다.

 

3. 외래키(Foreign Key, Fk) 삭제하기

ALTER TABLE board drop constraint fk_memberindexl;
--ALTER TABLE [삭제할 KF가 위치한 테이블명] drop constraint [삭제할 FK명]

 

 

외래키 확인하기

데이터베이스에서 MmeberA의 테이블의 기본키(PK)를 BoardA에서 외래키(FK)로 사용하는 것을 확인할 수 있습니다. 

 

 

SQL에서 사용되는 영어 단어의 뜻을 찾아보면 기억이 잘 될 것 같아서 찾아보았습니다.

  • CONSTRAINT : 제약 또는 제한, 통제를 의미합니다.
  • references : 참고자료
반응형