
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表資料
- SQL - 約束
- SQL 查詢
- SQL - INSERT 查詢
- SQL - SELECT 查詢
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - UPDATE 查詢
- SQL - DELETE 查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布林 (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - DELETE 連線
- SQL - UPDATE 連線
- SQL - 左連線 vs 右連線
- SQL - UNION vs JOIN
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 組合鍵
- SQL - 候選鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - MIN & MAX
- SQL - NULL 函式
- SQL - CHECK 約束
- SQL - DEFAULT 約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - 建立索引
索引是快速檢索 SQL 資料庫中資料的有效方法。它是一個數據庫物件,引用儲存在表中的資料,從而顯著提高資料庫的查詢和應用程式效能。
SQL 中的索引過程類似於書籍中的索引:它是一種表形式的資料庫物件,包含資料位置的詳細資訊,並擁有單獨的儲存空間。
儘管索引有助於加快搜索查詢速度,但使用者無法直接看到這些索引的執行情況。
什麼是 SQL 索引?
SQL 索引是一個特殊的查詢表,有助於有效地搜尋或查詢資料庫表以檢索所需資料。例如,當我們嘗試使用連線從多個表檢索資料時,索引可以提高查詢效能。
隨著資料量的增長,索引用於最佳化任何關係資料庫管理系統 (RDBMS) 的查詢效能。因此,建議將其用於頻繁查詢的大型資料庫表。
建立 SQL 索引
可以使用CREATE INDEX語句在 SQL 資料庫中表的單個或多個列上建立索引。
語法
以下是 SQL 中CREATE INDEX語句的語法:
CREATE INDEX index_name ON table_name (column_name1, column_name2,... column_nameN);
這裡:
- index_name 指定要建立的索引的名稱。
- table_name 指定要建立索引的表的名稱。
- (column_name1, column_name2...column_nameN) 是正在建立索引的一個或多個列的名稱。
示例
要在資料庫表上建立索引,我們首先需要建立一個表。因此,在此示例中,我們使用以下查詢建立一個名為CUSTOMERS的表:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR(15) NOT NULL, AGE INT NOT NULL, ADDRESS VARCHAR(25), SALARY DECIMAL(10, 4), PRIMARY KEY(ID)); );
然後,使用以下查詢將一些值插入 CUSTOMERS 表中:
INSERT INTO CUSTOMERS VALUES (1, 'Ramesh', '32', 'Ahmedabad', 2000), (2, 'Khilan', '25', 'Delhi', 1500), (3, 'Kaushik', '23', 'Kota', 2000), (4, 'Chaitali', '25', 'Mumbai', 6500), (5, 'Hardik','27', 'Bhopal', 8500), (6, 'Komal', '22', 'Hyderabad', 9000), (7, 'Muffy', '24', 'Indore', 5500);
建立表後,使用以下查詢為 CUSTOMERS 表中名為NAME的列建立索引:
CREATE INDEX index_name ON CUSTOMERS(NAME);
輸出
執行上述查詢後,將獲得如下輸出:
Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0
驗證
以下 SHOW INDEX 查詢用於顯示在現有表上建立的所有索引。
SHOW INDEX FROM CUSTOMERS;
在獲得的列表中,您可以找到列名 NAME,以及索引列表中的 ID。
表 | 非唯一 | 鍵名 | 索引中的序列 | 列名 |
---|---|---|---|---|
客戶 | 0 | 主鍵 | 1 | ID |
客戶 | 1 | index_name | 1 | NAME |
在多個欄位上建立索引
我們還可以使用 CREATE INDEX 語句在表的多個欄位(或列)上建立索引。為此,您只需要傳遞要建立索引的列的名稱。
示例
讓我們考慮前面建立的 CUSTOMERS 表,而不是建立一個新表。在這裡,我們使用以下查詢在NAME和AGE列上建立索引:
CREATE INDEX mult_index_data on CUSTOMERS(NAME, AGE);
輸出
執行上述查詢後,將獲得如下輸出:
Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0
驗證
現在,讓我們使用以下 SHOW INDEX 查詢列出在 CUSTOMERS 表上建立的所有索引:
SHOW INDEX FROM CUSTOMERS;
正如您所看到的,您可以在索引列表中找到列名 NAME 和 AGE 以及 ID(主鍵)。
表 | 非唯一 | 鍵名 | 索引中的序列 | 列名 |
---|---|---|---|---|
客戶 | 0 | 主鍵 | 1 | ID |
客戶 | 1 | index_name | 1 | NAME |
客戶 | 1 | mult_index_data | 1 | NAME |
客戶 | 1 | mult_index_data | 2 | AGE |
廣告