Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: สร้างคอลัมน์ให้มี Key = MUL ด้วย ADD KEY

ใน MySQL คีย์ประเภท MUL (Multiple) หมายถึงดัชนีที่ไม่ใช่ PRIMARY KEY และไม่ใช่ UNIQUE KEY อนุญาตให้มีค่าซ้ำได้ ใช้สร้างด้วย ADD KEY หรือ ADD INDEX

รูปแบบคำสั่ง

ALTER TABLE table_name
MODIFY COLUMN column_name data_type [NOT NULL],
ADD KEY (column_name);
  • MODIFY COLUMN - ปรับเปลี่ยนคอลัมน์ (เช่น เพิ่ม NOT NULL)
  • ADD KEY (column_name) - สร้างดัชนีแบบ MUL
  • ADD INDEX - ใช้แทน ADD KEY ได้ (หมายความว่าเหมือนกัน)

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

1. สร้างตารางโดยไม่มีดัชนี

CREATE TABLE Instructor (
    Instructor_Id INT,
    Instructor_Name VARCHAR(30),
    Instructor_CourseName VARCHAR(100)
);

ตรวจสอบโครงสร้าง (DESC Instructor):

+-----------------------+--------------+------+-----+---------+-------+
| Field                 | Type         | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| Instructor_Id         | int(11)      | YES  |     | NULL    |       |
| Instructor_Name       | varchar(30)  | YES  |     | NULL    |       |
| Instructor_CourseName | varchar(100) | YES  |     | NULL    |       |
+-----------------------+--------------+------+-----+---------+-------+

คอลัมน์ Key ว่างทั้งหมด (ไม่มีดัชนี)

2. เพิ่มดัชนี MUL ให้ Instructor_Id (พร้อม AUTO_INCREMENT)

ALTER TABLE Instructor
MODIFY COLUMN Instructor_Id INT NOT NULL AUTO_INCREMENT,
ADD KEY (Instructor_Id);

ตรวจสอบอีกครั้ง:

+-----------------------+--------------+------+-----+---------+----------------+
| Field                 | Type         | Null | Key | Default | Extra          |
+-----------------------+--------------+------+-----+---------+----------------+
| Instructor_Id         | int(11)      | NO   | MUL | NULL    | auto_increment |
| Instructor_Name       | varchar(30)  | YES  |     | NULL    |                |
| Instructor_CourseName | varchar(100) | YES  |     | NULL    |                |
+-----------------------+--------------+------+-----+---------+----------------+

ตอนนี้ Instructor_Id มี Key = MUL และ Extra = auto_increment

3. เพิ่มดัชนี MUL ให้ Instructor_Name (Non-Primary Key)

ALTER TABLE Instructor
MODIFY COLUMN Instructor_Name VARCHAR(30) NOT NULL,
ADD KEY (Instructor_Name);

ผลลัพธ์สุดท้าย:

+-----------------------+--------------+------+-----+---------+----------------+
| Field                 | Type         | Null | Key | Default | Extra          |
+-----------------------+--------------+------+-----+---------+----------------+
| Instructor_Id         | int(11)      | NO   | MUL | NULL    | auto_increment |
| Instructor_Name       | varchar(30)  | NO   | MUL | NULL    |                |
| Instructor_CourseName | varchar(100) | YES  |     | NULL    |                |
+-----------------------+--------------+------+-----+---------+----------------+

สรุปประเภท Key ใน MySQL

Keyความหมาย
PRIPrimary Key (ไม่ซ้ำ, ไม่เป็น NULL)
UNIUnique Key (ไม่ซ้ำ, อนุญาต NULL ได้หลายค่า)
MULNon-unique Index (อนุญาตค่าซ้ำได้)
(ว่าง)ไม่มีดัชนี

ใช้ MUL เมื่อต้องการเพิ่มประสิทธิภาพการค้นหา/จัดกลุ่มแต่ยังต้องการอนุญาตค่าซ้ำได้