คีย์เวิร์ด KEY ใน MySQL: Synonym ของ INDEX
ใน MySQL KEY เป็น **Synonym (คำที่มีความหมายเหมือนกัน)** ของ INDEX สามารถใช้แทนกันได้ในหลายบริบท
การใช้งาน KEY ใน CREATE TABLE
1. PRIMARY KEY
CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-- หรือ
Id INT NOT NULL AUTO_INCREMENT KEY, -- KEY = PRIMARY KEY ใน Column Definition
Name VARCHAR(50),
Age INT
);
ใน Column Definition: KEY = PRIMARY KEY (เฉพาะคอลัมน์เดียว)
2. INDEX / KEY (Secondary Index)
-- สร้างตารางก่อน
CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50),
Age INT
);
-- เพิ่ม Index ด้วย KEY (เหมือน INDEX)
CREATE INDEX Name_Age_Index ON DemoTable (Name, Age);
-- หรือ
ALTER TABLE DemoTable ADD KEY Name_Age_Index (Name, Age);
3. ตรวจสอบโครงสร้าง
DESC DemoTable;
ผลลัพธ์:
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Name | varchar(50) | YES | MUL | NULL | |
| Age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
คอลัมน์ Key แสดง: PRI = Primary Key, MUL = Non-unique Index (Multiple), UNI = Unique Index
สรุปการใช้ KEY vs INDEX
| บริบท | KEY | INDEX |
|---|---|---|
| Column Definition | col INT KEY = PRIMARY KEY | ไม่ใช้ใน Column Definition |
| Table Constraint | KEY idx_name (col) | INDEX idx_name (col) |
| ALTER TABLE | ADD KEY idx (col) | ADD INDEX idx (col) |
| SHOW CREATE TABLE | แสดงเป็น KEY | แสดงเป็น KEY (MySQL แปลง INDEX เป็น KEY) |