คำสั่ง CREATE INDEX ใน SQL ใช้เพื่อสร้างดัชนี (Index) บนคอลัมน์ของตาราง ซึ่งช่วยเพิ่มประสิทธิภาพในการค้นหาและจัดเรียงข้อมูล การใช้งาน CREATE INDEX สามารถทำได้หลายรูปแบบ เช่น ดัชนีบนคอลัมน์เดียว ดัชนีหลายคอลัมน์ ดัชนีที่ไม่ซ้ำกัน (Unique Index) และดัชนีแบบเต็มข้อความ (Full-text Index) โดยแต่ละรูปแบบมีจุดเด่นและวิธีการประยุกต์ใช้งานแตกต่างกันตามลักษณะการใช้งานของข้อมูลในตาราง
สร้างตารางตัวอย่าง
สร้างตาราง Customers
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(100),
PhoneNumber VARCHAR(20),
City VARCHAR(50),
Country VARCHAR(50)
);เพิ่มข้อมูลในตาราง
INSERT INTO Customers (CustomerID, FirstName, LastName, Email, PhoneNumber, City, Country)
VALUES
(1, 'John', 'Doe', '[email protected]', '1234567890', 'New York', 'USA'),
(2, 'Jane', 'Smith', '[email protected]', '0987654321', 'Los Angeles', 'USA'),
(3, 'Michael', 'Johnson', '[email protected]', '1112223333', 'Chicago', 'USA'),
(4, 'Emily', 'Davis', '[email protected]', '4445556666', 'Houston', 'USA'),
(5, 'Sarah', 'Brown', '[email protected]', '7778889999', 'Seattle', 'USA');
รูปแบบการใช้งานคำสั่ง CREATE INDEX
การสร้างดัชนีบนคอลัมน์เดียว
ดัชนีบนคอลัมน์เดียวใช้เพื่อเพิ่มความเร็วในการค้นหาหรือเรียงลำดับข้อมูลในคอลัมน์นั้นๆ
คำสั่งสำหรับการสร้าง index
CREATE INDEX idx_lastname ON Customers(LastName);ดัชนี idx_lastname ถูกสร้างบนคอลัมน์ LastName ของตาราง Customers ช่วยเพิ่มความเร็วในการค้นหาชื่อสกุล (LastName)
คำสั่งในการสืบค้นข้อมูล
SELECT * FROM Customers WHERE LastName = 'Smith';การสืบค้นข้อมูลตามคอลัมน์ LastName จะทำงานเร็วขึ้นเพราะมีดัชนีรองรับ
การสร้างดัชนีหลายคอลัมน์ (Composite Index)
ดัชนีหลายคอลัมน์จะครอบคลุมหลายคอลัมน์ในคำสั่ง WHERE โดยเฉพาะการค้นหาหลายเงื่อนไข
คำสั่งในการสร้าง index
CREATE INDEX idx_name_city ON Customers(FirstName, City);ดัชนี idx_name_city ถูกสร้างขึ้นบนคอลัมน์ FirstName และ City เหมาะสำหรับการค้นหาที่มีเงื่อนไขเกี่ยวข้องกับทั้งสองคอลัมน์
คำสั่งในการสืบค้นข้อมูล
SELECT * FROM Customers WHERE FirstName = 'John' AND City = 'New York';Index นี้จะเพิ่มความเร็วในการค้นหาที่มีทั้ง FirstName และ City อยู่ในเงื่อนไขการค้นหา
การสร้างดัชนีที่ไม่ซ้ำกัน (Unique Index)
ดัชนีที่ไม่ซ้ำกันบังคับให้ข้อมูลในคอลัมน์ที่สร้างดัชนีต้องไม่ซ้ำกัน เช่น การใช้กับอีเมลหรือหมายเลขโทรศัพท์
คำสั่งในการสร้าง Index
CREATE UNIQUE INDEX idx_unique_email ON Customers(Email);ดัชนี idx_unique_email จะบังคับให้ข้อมูลในคอลัมน์ Email ไม่มีการซ้ำกัน เหมาะสำหรับข้อมูลที่ต้องไม่ซ้ำเช่นอีเมล
ทดสอบเพิ่มข้อมูลในตาราง
INSERT INTO Customers (CustomerID, FirstName, LastName, Email, PhoneNumber, City, Country)
VALUES (6, 'Anna', 'Lee', '[email protected]', '9998887777', 'Miami', 'USA');คำสั่งนี้จะเกิดข้อผิดพลาด เนื่องจากอีเมล [email protected] มีอยู่แล้วในตาราง และดัชนีไม่อนุญาตให้ซ้ำ

การสร้างดัชนีแบบเต็มข้อความ (Full-text Index)
ดัชนีแบบเต็มข้อความใช้ในการค้นหาข้อความในคอลัมน์ที่เป็นข้อความยาว เช่น การค้นหาในบทความหรือข้อความคำอธิบาย
คำสั่งในการสร้าง Index
CREATE FULLTEXT INDEX idx_fulltext_name ON Customers(FirstName, LastName);ดัชนีแบบเต็มข้อความ idx_fulltext_name จะช่วยให้การค้นหาคำหรือข้อความบางส่วนในคอลัมน์ FirstName และ LastName ทำได้รวดเร็ว
คำสั่งสำหรับสืบค้นข้อมูล
SELECT * FROM Customers WHERE MATCH(FirstName, LastName) AGAINST ('John');คำสั่งนี้จะค้นหาคำว่า John ในคอลัมน์ FirstName และ LastName
สรุป
คำสั่ง CREATE INDEX เป็นเครื่องมือสำคัญในการเพิ่มประสิทธิภาพของฐานข้อมูลในด้านการค้นหาและจัดเรียงข้อมูล โดยมีหลายรูปแบบให้เลือกใช้ตามความเหมาะสมของข้อมูลในตาราง
