อัปเดตล่าสุด Feb. 1, 2024
Foreign Key หรือ คีย์นอก เป็นคำสั่งที่ใช้ในการเชื่อมโยงตารางสองตารางเข้าด้วยกัน โดยปกติแล้วจะหมายถึงฟิลด์ (คอลัมน์) ในตารางหนึ่งที่อ้างอิงไปยัง Primary Key (คีย์หลัก) ในตารางอีกตารางหนึ่ง โดยตารางที่มี Foreign Key เราเรียกว่า Child Table (ตารางลูก) และตารางที่มี Primary Key เราเรียกว่า Parent Table (ตารางแม่)
Foreign Key ทำให้ข้อมูลระหว่างสองตารางมีความสอดคล้องกัน และมีการเชื่อมโยงเข้าด้วยกันอย่างถูกต้อง ซึ่งตรงนี้ช่วยให้รักษาความสมบูรณ์และความเข้ากันของข้อมูลระหว่างสองตารางได้เป็นอย่างดี
สมมติเรามีตารางสองตาราง Students
และ Classes
1. ตาราง Students
มีคอลัมน์ดังนี้:
2. ตาราง Classes
มีคอลัมน์ดังนี้
คอลัมน์ ClassID
ในตาราง Students เป็น Foreign Key ที่ชี้ไปยัง ClassID
ในตาราง Classes
การตั้งค่านี้ทำให้แน่ใจว่านักเรียนแต่ละคนถูกเชื่อมโยงกับคลาสที่ถูกต้อง
ตัวอย่างโค้ด SQL
CREATE TABLE Classes (ClassID int PRIMARY KEY,ClassName varchar(255) NOT NULL);CREATE TABLE Students (StudentID int PRIMARY KEY,StudentName varchar(255) NOT NULL,ClassID int,FOREIGN KEY (ClassID) REFERENCES Classes(ClassID));
อธิบายโค้ด
Classes
โดยมี ClassID
เป็น Primary KeyStudents
ที่มี StudentID
เป็น Primary KeyClassID
ในตาราง Students
ถูกประกาศเป็น Foreign Key ที่อ้างอิงถึง ClassID
ในตาราง Classes
จากการเชื่อมความสัมพันธ์ของทั้งสองตารางนี้ ต้องทำให้แน่ใจว่าสำหรับแต่ละ ClassID
ในตาราง Students จะต้องมี record (รายการข้อมูล) ที่ตรงกันอยู่ในตาราง Classes
ถ้าพยายามที่จะใส่ข้อมูลในตาราง Students
ด้วย ClassID
ที่ไม่มีอยู่ในตาราง Classes
ฐานข้อมูลจะป้องกันไม่ให้ทำแบบนั้นโดยอัตโนมัติ ก็เพื่อรักษาความสมบูรณ์ของข้อมูลนั่นเอง