Constraints คือ ข้อกำหนด (เงื่อนไข) ที่ใช้กับตารางในฐานข้อมูล MySQL มีหน้าที่ควบคุมความถูกต้อง ความสอดคล้อง และความสมบูรณ์ของข้อมูล ถูกกำหนดไว้ในตอน สร้างตาราง (CREATE TABLE) หรือ ปรับแก้ตาราง (ALTER TABLE)
ประเภทของ Constraints ที่ใช้บ่อยใน MySQL
1. PRIMARY KEY
- ใช้ระบุคอลัมน์หลักของตาราง
- ต้องมีค่า ไม่ซ้ำ (Unique) และ ไม่เป็น NULL
- แต่ละตารางมีได้เพียง หนึ่ง
PRIMARY KEY
ตัวอย่าง
customer_id INT PRIMARY KEY
2. NOT NULL
- บังคับให้คอลัมน์นั้น ต้องมีค่า
- ห้ามเป็นค่าว่าง (NULL)
ตัวอย่าง
first_name VARCHAR(50) NOT NULL
3. UNIQUE
- บังคับให้ข้อมูลในคอลัมน์ ห้ามซ้ำ
- ต่างจาก
PRIMARY KEYตรงที่สามารถมีหลายUNIQUEในตารางเดียวได้
ตัวอย่าง
email VARCHAR(100) UNIQUE
4. DEFAULT
- กำหนดค่าพื้นฐานให้คอลัมน์ ถ้าไม่มีการกรอกค่าใด ๆ
ตัวอย่าง
status VARCHAR(20) DEFAULT 'active'
5. AUTO_INCREMENT
- ใช้กับคอลัมน์ที่เป็นตัวเลข (
INT) เพื่อให้เลขเพิ่มอัตโนมัติ - มักใช้คู่กับ
PRIMARY KEY
ตัวอย่าง
order_id INT AUTO_INCREMENT PRIMARY KEY
6. FOREIGN KEY
- สร้างความสัมพันธ์ (relationship) ระหว่างตาราง
- เชื่อมคอลัมน์ในตารางหนึ่งกับคอลัมน์หลักของอีกตารางหนึ่ง
- รักษาความถูกต้องของข้อมูล (referential integrity)
ตัวอย่าง
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
ตัวอย่างการใช้งาน Constraints
SQL
CREATE TABLE employee (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
department_id INT,
hired_at DATE DEFAULT CURRENT_DATE,
FOREIGN KEY (department_id) REFERENCES department(id)
);