Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
18 ก.ย. เวลา 06:46 • การศึกษา
Data By Shoper Gamer
Primary Keys คืออะไร
โดย
ในโลกของฐานข้อมูลที่ข้อมูลคือราชา Primary Keys (คีย์หลัก) ทำหน้าที่เหมือนลายนิ้วมือที่ช่วยระบุข้อมูลแต่ละรายการอย่างไม่ซ้ำใคร บทความนี้จะพาคุณเจาะลึกไปกับ Primary Keys ตั้งแต่แนวคิดพื้นฐานไปจนถึงการนำไปใช้งานจริง
★
Primary Keys คืออะไร
Primary Keys คือ ฟิลด์หรือชุดของฟิลด์ในตารางฐานข้อมูลที่ใช้ระบุแต่ละแถว (record) ได้อย่างไม่ซ้ำกัน โดยมีคุณสมบัติสำคัญคือ
○ ค่าไม่ซ้ำกัน (Unique) ในตาราง
○ ค่าไม่เป็นค่าว่าง (Not Null)
○ มีเพียงหนึ่งเดียว ในแต่ละตาราง
★
Primary Keys ทำงานอย่างไร
☆ หลักการทำงานพื้นฐาน
1) การกำหนดตัวตนให้กับแต่ละแถวข้อมูล
2) การสร้างความสัมพันธ์ ระหว่างตาราง
3) การบังคับความถูกต้อง ของข้อมูล (Data Integrity)
4) การเพิ่มประสิทธิภาพการค้นหา และ จัดเรียง
☆ กลไกการทำงาน
○ การตรวจสอบความไม่ซ้ำกันก่อนการเพิ่มหรือแก้ไขข้อมูล
○ การสร้างดัชนี (Index) อัตโนมัติสำหรับการค้นหาที่เร็วขึ้น
○ การบังคับใช้ความสัมพันธ์ (Referential Integrity) กับ Foreign Keys
★
ประเภทของ Primary Keys
1) Natural Keys (คีย์จากธรรมชาติ)
○ ใช้ข้อมูลที่มีอยู่แล้วในธุรกิจ
○ ตัวอย่าง เลขบัตรประชาชน, อีเมล, เลขที่ใบสั่งซื้อ
○ ข้อดี มีความหมายในธุรกิจ
○ ข้อเสีย อาจเปลี่ยนแปลงได้
2) Surrogate Keys (คีย์เทียม)
○ สร้างขึ้นมาเฉพาะสำหรับฐานข้อมูล
○ ตัวอย่าง: ตัวเลขที่เพิ่มขึ้นอัตโนมัติ (AUTO\_INCREMENT), GUID/UUID
○ ข้อดี ไม่เปลี่ยนแปลง, ไม่มีนัยยะทางธุรกิจ
○ ข้อเสีย ไม่มีความหมายในตัวมันเอง
3) Composite Keys (คีย์ผสม)
○ ใช้หลายฟิลด์รวมกันเป็นคีย์
○ ตัวอย่าง: (รหัสนักเรียน, รหัสวิชา) สำหรับตารางลงทะเบียนเรียน
○ ข้อดี สะท้อนความสัมพันธ์ที่ซับซ้อน
○ ข้อเสีย การจัดการที่ยุ่งยากกว่า
★
ประโยชน์
✅ รักษาความถูกต้องของข้อมูล (Data Integrity)
✅ เพิ่มประสิทธิภาพการค้นหาผ่านการสร้าง Index
✅ อำนวยความสะดวกในการสร้างความสัมพันธ์ ระหว่างตาราง
✅ ป้องกันข้อมูลซ้ำซ้อน
✅ รองรับการทำธุรกรรมที่ซับซ้อน
★
ตัวอย่างการใช้งาน
1) การสร้างตารางด้วย Primary Key
```sql
-- ใช้ Natural Key
CREATE TABLE Customers (
CitizenID CHAR(13) PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(100)
);
-- ใช้ Surrogate Key
CREATE TABLE Products (
ProductID INT AUTO_INCREMENT PRIMARY KEY,
ProductName VARCHAR(100),
Price DECIMAL(10,2)
);
2
-- ใช้ Composite Key
CREATE TABLE OrderDetails (
OrderID INT,
ProductID INT,
Quantity INT,
PRIMARY KEY (OrderID, ProductID)
);
```
1
2) การเพิ่มข้อมูล
```sql
-- ข้อมูลจะไม่ซ้ำกัน
INSERT INTO Customers (CitizenID, FirstName, LastName, Email)
VALUES ('1234567890123', 'สมชาย', 'ใจดี', 'somchai@email.com');
-- การเพิ่มข้อมูลซ้ำจะ error
INSERT INTO Customers (CitizenID, FirstName, LastName, Email)
VALUES ('1234567890123', 'สมหญิง', 'รักดี', 'somying@email.com');
-- Error: Duplicate entry '1234567890123' for key 'PRIMARY'
```
3) การสร้างความสัมพันธ์ระหว่างตาราง
```sql
CREATE TABLE Orders (
OrderID INT AUTO_INCREMENT PRIMARY KEY,
CustomerID CHAR(13),
OrderDate DATE,
FOREIGN KEY (CustomerID) REFERENCES Customers(CitizenID)
);
```
★
วิธีการเลือก Primary Keys ให้เหมาะสม
☆ เมื่อควรใช้ Natural Key
○ เมื่อมีตัวระบุจากธุรกิจที่ ไม่เปลี่ยนแปลง
○ เมื่อต้องการให้คีย์ มีความหมาย ในการสืบค้นข้อมูล
○ ตัวอย่าง: เลขบัตรประชาชน, รหัสพนักงาน
☆ เมื่อควรใช้ Surrogate Key
○ เมื่อไม่มี Natural Key ที่เหมาะสม
○ เมื่อ Natural Key ยาวหรือซับซ้อนเกินไป
○ เมื่อต้องการประสิทธิภาพ ในการเชื่อมโยงตาราง
○ ตัวอย่าง: ID ที่เพิ่มอัตโนมัติ, UUID
☆ เมื่อควรใช้ Composite Key
○ เมื่อต้องการสะท้อนความสัมพันธ์ many-to-many
○ เมื่อการรวมกันของหลายฟิลด์มีเพียงหนึ่งเดียว
○ ตัวอย่าง ตารางเชื่อมโยง (junction table)
★
ข้อผิดพลาดที่ควรหลีกเลี่ยง
❌ ใช้ฟิลด์ที่อาจเปลี่ยนแปลงได้เป็น Primary Key
❌ ใช้ฟิลด์ที่อาจมีค่าว่าง
❌ ใช้ฟิลด์ที่ยาวเกินจำเป็น
❌ ไม่สร้างดัชนีสำหรับ Primary Key
❌ ใช้ข้อมูลที่มีความหมายทางธุรกิจมากเกินไป สำหรับ Surrogate Key
✏️ Shoper Gamer
>>
https://shopergamer.vercel.app/
✓
Data Keys คืออะไร 👇
>>
https://www.blockdit.com/posts/68cabc426b515917c10f73d8
Credit :
👇
●
https://www.w3schools.com/sql/sql_primarykey.ASP
●
https://www.ibm.com/docs/en/iodg/11.3.0?topic=reference-primary-keys
●
https://dagster.io/glossary/primary-key
●
https://www.borntodev.com/2021/06/11/ความแตกต่าง-primary-foreign/
data
เทคโนโลยี
ข่าวรอบโลก
บันทึก
2
4
ดูเพิ่มเติมในซีรีส์
Data
2
4
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย