SQL > 도표처리 > 외래키

외래키는 다른 하나(또는 여러개)의 도표 일차키를 가리키는 필드입니다.외래키의 목적은 데이터의 참고 온정성 (referential integrity) 을 확정하는것입니다.다시말하면 허용된 데이터 수치만 데이터베이스내에 저장할수 있습니다.

예를 들어 두개의 도표가 있다면: 하나의 CUSTOMER 도표에는 모든 고객들의 데이터가 기록되여 있고, 다른 하나의 ORDERS 도표내에는 모든 고객들이 주문한 데이터가 기록되여 있습니다. 여기에는 모든 주문 데이터 중의 고객들이 반드시 CUSTOMER 도표중에 존재해야 된다는 제한이 있습니다. 여기서 우리는 ORDERS 도표에 외래키를 설정하고 이 외래키는 CUSTOMER 도표중의 일차키를 가리키고 있습니다. 이것으로 우리는 모든 ORDERS 도표중의 고객이CUSTOMER 도표중에 존재한다는것을 확정할수 있습니다. 다시말하면 ORDERS 도표중에는, 고객이 CUSTOMER 도표중에 존재하지않는 데이터가 있을수 없습니다.

이 두 도표의 구조는 아래와 같을것입니다:

CUSTOMER 도표
필드명 성질
SID 일차키
Last_Name  
First_Name  

ORDERS 도표
필드명 성질
Order_ID 일차키
Order_Date  
Customer_SID 외래키
Amount  

위의 예에서 ORDERS 도표중의 Customer_SID 필드 하나는 CUSTOMER 도표중의SID 필드의 외래키를 가리킵니다.

아래 내용은 ORDERS 도표를 만들때 외래키를 지정하는 몇개의 방법입니다:

MySQL:

CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
PRIMARY KEY (Order_ID),
FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID));

Oracle:

CREATE TABLE ORDERS
(Order_ID integer PRIMARY KEY,
Order_Date date,
Customer_SID integer REFERENCES CUSTOMER (SID),
Amount double);

SQL Server:

CREATE TABLE ORDERS
(Order_ID integer PRIMARY KEY,
Order_Date datetime,
Customer_SID integer REFERENCES CUSTOMER (SID),
Amount double);

아래 예는 도표 구조를 개변하는것으로 외래키를 지정합니다. 여기서 ORDERS 도표는 이미 만들어 졌고 외래키는 지정되지 않은것으로 가설합니다:

MySQL:

ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

Oracle:

ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

SQL Server:

ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

SQL DROP TABLE >>

이페이지는 2022년6월28일에 마지막으로 업데이트되었습니다



Copyright © 2024   1keydata.com   All Rights Reserved