1. Tạo chỉ mục trong bảng bằng INDEX

Câu lệnh CREATE INDEX được sử dụng để tạo chỉ mục trong bảng. Người dùng không thể nhìn thấy các chỉ mục, chúng chỉ được sử dụng để tăng tốc độ tìm kiếm / truy vấn.

Các chỉ mục được sử dụng để lấy dữ liệu từ cơ sở dữ liệu một cách nhanh hơn so với các cách truy vấn khác. Tuy nhiên,  việc cập nhật bảng có chỉ mục lại cho thấy mất nhiều thời gian hơn cập nhật bảng không có chỉ mục (vì chỉ mục cũng cần cập nhật)

Cú pháp tạo chỉ mục trên bảng có sự cho phép của các giá trị trùng lặp trong bảng:

CREATE INDEX index_name
ON table_name (column1, column2, ...);

Cú pháp tạo một chỉ mục duy nhất trên một bảng với các giá trị trùng lặp không được phép chèn vào bảng:

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);

Trong đó:

  • CREATE INDEX là câu lệnh tạo chỉ mục
  • index_name là tên của chỉ mục
  • ON table_name là việc tạo chỉ mục trên bảng có tên table_name
  • column1, column2, column3… là các cột thuộc chỉ mục

Để xóa bỏ một chỉ mục INDEX ta sẽ sử dụng câu lệnh như sau:

DROP INDEX table_name.index_name;

Chú ý: Để xóa ta chỉ mục ta cần biết tên bảng và tên của chỉ mục do ta đặt!

2. Ví dụ INDEX

Câu lệnh SQL bên dưới tạo một chỉ mục INDEX có tên idx_Ho trên cột Ho trong bảng ConNguoi

CREATE INDEX idx_Ho
ON ConNguoi(Ho);

Nếu bạn muốn tạo chỉ mục trên nhiều các cột, bạn có thể liệt kê tên cột trong dấu ngoặc đơn, được phân tách bằng dấu phẩy:

CREATE INDEX idx_ConNguoi
ON ConNguoi(Ho, Ten, DiaChi);

Tương tự như ví dụ trên, ta có thể tạo một chỉ mục UNIQUE bằng câu lệnh như sau:

CREATE UNIQUE INDEX idx_ConNguoi
ON ConNguoi(Ho, Ten, DiaChi);

Để xóa đi chỉ mục có tên là idx_ConNguoi trên bảng ConNguoi ta sẽ sử dụng cú pháp như sau:

DROP INDEX ConNguoi.idx_ConNguoi;

Chú ý: Cú pháp để tạo chỉ mục khác nhau giữa các cơ sở dữ liệu khác nhau. Do đó bạn nên kiểm tra cú pháp để tạo chỉ mục trong cơ sở dữ liệu của bạn.