SQL การใช้งาน CREATE INDEX Statement

คำสั่ง CREATE INDEX ใน SQL ใช้เพื่อสร้างดัชนี (Index) บนคอลัมน์ของตาราง ซึ่งช่วยเพิ่มประสิทธิภาพในการค้นหาและจัดเรียงข้อมูล การใช้งาน CREATE INDEX สามารถทำได้หลายรูปแบบ เช่น ดัชนีบนคอลัมน์เดียว ดัชนีหลายคอลัมน์ ดัชนีที่ไม่ซ้ำกัน (Unique Index) และดัชนีแบบเต็มข้อความ (Full-text Index) โดยแต่ละรูปแบบมีจุดเด่นและวิธีการประยุกต์ใช้งานแตกต่างกันตามลักษณะการใช้งานของข้อมูลในตาราง

สร้างตารางตัวอย่าง

สร้างตาราง Customers

SQL
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)
);

เพิ่มข้อมูลในตาราง

SQL
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

SQL
CREATE INDEX idx_lastname ON Customers(LastName);

ดัชนี idx_lastname ถูกสร้างบนคอลัมน์ LastName ของตาราง Customers ช่วยเพิ่มความเร็วในการค้นหาชื่อสกุล (LastName)

คำสั่งในการสืบค้นข้อมูล

SQL
SELECT * FROM Customers WHERE LastName = 'Smith';

การสืบค้นข้อมูลตามคอลัมน์ LastName จะทำงานเร็วขึ้นเพราะมีดัชนีรองรับ

การสร้างดัชนีหลายคอลัมน์ (Composite Index)

ดัชนีหลายคอลัมน์จะครอบคลุมหลายคอลัมน์ในคำสั่ง WHERE โดยเฉพาะการค้นหาหลายเงื่อนไข

คำสั่งในการสร้าง index

SQL
CREATE INDEX idx_name_city ON Customers(FirstName, City);

ดัชนี idx_name_city ถูกสร้างขึ้นบนคอลัมน์ FirstName และ City เหมาะสำหรับการค้นหาที่มีเงื่อนไขเกี่ยวข้องกับทั้งสองคอลัมน์

คำสั่งในการสืบค้นข้อมูล

SQL
SELECT * FROM Customers WHERE FirstName = 'John' AND City = 'New York';

Index นี้จะเพิ่มความเร็วในการค้นหาที่มีทั้ง FirstName และ City อยู่ในเงื่อนไขการค้นหา

การสร้างดัชนีที่ไม่ซ้ำกัน (Unique Index)

ดัชนีที่ไม่ซ้ำกันบังคับให้ข้อมูลในคอลัมน์ที่สร้างดัชนีต้องไม่ซ้ำกัน เช่น การใช้กับอีเมลหรือหมายเลขโทรศัพท์

คำสั่งในการสร้าง Index

SQL
CREATE UNIQUE INDEX idx_unique_email ON Customers(Email);

ดัชนี idx_unique_email จะบังคับให้ข้อมูลในคอลัมน์ Email ไม่มีการซ้ำกัน เหมาะสำหรับข้อมูลที่ต้องไม่ซ้ำเช่นอีเมล

ทดสอบเพิ่มข้อมูลในตาราง

SQL
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

SQL
CREATE FULLTEXT INDEX idx_fulltext_name ON Customers(FirstName, LastName);

ดัชนีแบบเต็มข้อความ idx_fulltext_name จะช่วยให้การค้นหาคำหรือข้อความบางส่วนในคอลัมน์ FirstName และ LastName ทำได้รวดเร็ว

คำสั่งสำหรับสืบค้นข้อมูล

SQL
SELECT * FROM Customers WHERE MATCH(FirstName, LastName) AGAINST ('John');

คำสั่งนี้จะค้นหาคำว่า John ในคอลัมน์ FirstName และ LastName

สรุป

คำสั่ง CREATE INDEX เป็นเครื่องมือสำคัญในการเพิ่มประสิทธิภาพของฐานข้อมูลในด้านการค้นหาและจัดเรียงข้อมูล โดยมีหลายรูปแบบให้เลือกใช้ตามความเหมาะสมของข้อมูลในตาราง

แชร์เรื่องนี้