Foreign Key

อัปเดตล่าสุด Feb. 1, 2024
บทเรียนที่ 6

Foreign Key หรือ คีย์นอก เป็นคำสั่งที่ใช้ในการเชื่อมโยงตารางสองตารางเข้าด้วยกัน โดยปกติแล้วจะหมายถึงฟิลด์ (คอลัมน์) ในตารางหนึ่งที่อ้างอิงไปยัง Primary Key (คีย์หลัก) ในตารางอีกตารางหนึ่ง โดยตารางที่มี Foreign Key เราเรียกว่า Child Table (ตารางลูก) และตารางที่มี Primary Key เราเรียกว่า Parent Table (ตารางแม่)


Foreign Key ทำให้ข้อมูลระหว่างสองตารางมีความสอดคล้องกัน และมีการเชื่อมโยงเข้าด้วยกันอย่างถูกต้อง ซึ่งตรงนี้ช่วยให้รักษาความสมบูรณ์และความเข้ากันของข้อมูลระหว่างสองตารางได้เป็นอย่างดี

ตัวอย่างการใช้งาน Foreign Key

สมมติเรามีตารางสองตาราง Students   และ  Classes  


1. ตาราง  Students มีคอลัมน์ดังนี้:

  • StudentID (Primary Key)
  • StudentName
  • ClassID (Foreign Key)

2. ตาราง  Classes มีคอลัมน์ดังนี้

  • ClassID (Primary Key)
  • ClassName

คอลัมน์  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 Key
  • จากนั้นสร้างตาราง  Students ที่มี  StudentID เป็น Primary Key
  •  ClassID ในตาราง  Students  ถูกประกาศเป็น Foreign Key ที่อ้างอิงถึง  ClassID ในตาราง  Classes

จากการเชื่อมความสัมพันธ์ของทั้งสองตารางนี้ ต้องทำให้แน่ใจว่าสำหรับแต่ละ  ClassID ในตาราง Students จะต้องมี record (รายการข้อมูล) ที่ตรงกันอยู่ในตาราง  Classes ถ้าพยายามที่จะใส่ข้อมูลในตาราง  Students ด้วย  ClassID ที่ไม่มีอยู่ในตาราง  Classes ฐานข้อมูลจะป้องกันไม่ให้ทำแบบนั้นโดยอัตโนมัติ ก็เพื่อรักษาความสมบูรณ์ของข้อมูลนั่นเอง

มาแล้วคลาสที่ฮอตสุดตอนนี้ สร้าง AI App ขั้นสูงด้วย Agent & Vector Databases & RAG

May 10, 2025 - 9:00 a.m.

🔥 ใช้ AI จนคล่อง แต่เคยสงสัยไหมว่าเบื้องหลัง AI เทพๆ อย่าง ChatGPT หรือ Copilot เค้าสร้าง "สมอง" ให้มันยังไง? คอร์สนี้ไม่ได้สอนแค่ใช้ แต่สอนให้คุณ "สร้าง" AI ที่รู้ลึก รู้จริง ด้วย Vector Databases, RAG และ …