ใน SQL PRIMARY KEY คือข้อบังคับ (constraint) ที่ใช้เพื่อบังคับให้คอลัมน์หรือชุดของคอลัมน์ในตารางมีค่าไม่ซ้ำกันและไม่เป็นค่า NULL โดยค่าในคอลัมน์นี้จะต้องมีความเป็นเอกลักษณ์ (unique) สำหรับแต่ละแถวในตาราง
การใช้งาน PRIMARY KEY Constraint
- Primary Key แบบคอลัมน์เดียว
การกำหนดPRIMARY KEYให้กับคอลัมน์เดียว ทำให้ค่าของคอลัมน์นี้ไม่ซ้ำกันและไม่สามารถเป็นNULLได้ - Primary Key แบบหลายคอลัมน์ (Composite Primary Key)
การกำหนดPRIMARY KEYให้กับหลายคอลัมน์หรือ “คอมโพสิต” จะทำให้คู่ของค่าระหว่างคอลัมน์ที่อยู่ในPRIMARY KEYต้องไม่ซ้ำกัน
ตัวอย่างการใช้งาน
Primary Key แบบคอลัมน์เดียว
สร้างตาราง Customers โดยใช้ PRIMARY KEY ในคอลัมน์ CustomerID
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(100)
);ในตัวอย่างนี้คอลัมน์ CustomerID เป็น PRIMARY KEY ซึ่งหมายความว่าค่าของคอลัมน์นี้จะไม่ซ้ำกันและไม่สามารถเป็น NULL ได้
โครงสร้างของตารางจะเป็นดังนี้

แทรกข้อมูลตัวอย่างด้วยคำสั่งดังนี้
INSERT INTO Customers (CustomerID, FirstName, LastName, Email)
VALUES
(1, 'John', 'Doe', '[email protected]'),
(2, 'Jane', 'Smith', '[email protected]');ข้อมูลในตารางจะเป็นดังนี้

Primary Key แบบหลายคอลัมน์ (Composite Primary Key)
ในตัวอย่างนี้เราจะสร้างตาราง Orders ที่ใช้ OrderID และ ProductID เป็น PRIMARY KEY ร่วมกัน หมายความว่า ค่าของคู่คอลัมน์ระหว่าง OrderID และ ProductID จะต้องไม่ซ้ำกันในตาราง
CREATE TABLE Orders (
OrderID INT,
ProductID INT,
Quantity INT,
PRIMARY KEY (OrderID, ProductID)
);ในตัวอย่างนี้ PRIMARY KEY ถูกกำหนดโดยคอลัมน์ OrderID และ ProductID ร่วมกัน ซึ่งจะทำให้ไม่มีแถวใดในตารางที่มีค่าของคอลัมน์ OrderID และ ProductID ซ้ำกัน
โครงสร้างของตารางที่ได้

แทรกข้อมูลเข้าไปในตารางด้วยคำสั่งดังนี้
INSERT INTO Orders (OrderID, ProductID, Quantity)
VALUES
(1001, 1, 10),
(1001, 2, 5),
(1002, 1, 15);
ในตารางนี้ ไม่มีแถวใดที่มีคู่ของ OrderID และ ProductID ซ้ำกัน เพราะถูกบังคับโดย PRIMARY KEY
อธิบายโค้ดตัวอย่าง
- ในตาราง
CustomersเรากำหนดPRIMARY KEYให้กับCustomerIDทำให้CustomerIDเป็นตัวกำหนดเอกลักษณ์ของข้อมูลลูกค้าแต่ละคน ข้อมูลในคอลัมน์นี้จะไม่ซ้ำกันและต้องไม่เป็นค่าNULL - ในตาราง
Ordersเราใช้PRIMARY KEYแบบหลายคอลัมน์หรือComposite Primary Keyโดยรวมคอลัมน์OrderIDและProductIDเข้าด้วยกัน ซึ่งหมายความว่าเราสามารถมีOrderIDที่ซ้ำกันได้ แต่คู่ของOrderIDและProductIDต้องไม่ซ้ำกัน
