SQL?CREATE?INDEX提高數(shù)據(jù)庫檢索效率的關(guān)鍵步驟詳解
SQL CREATE INDEX 語句
SQL CREATE INDEX 語句用于在表中創(chuàng)建索引。
索引用于比其他方式更快地從數(shù)據(jù)庫中檢索數(shù)據(jù)。用戶無法看到索引,它們只是用于加速搜索/查詢。
注意: 使用索引更新表比不使用索引更新表需要更多的時間(因為索引也需要更新)。因此,只在經(jīng)常進行搜索的列上創(chuàng)建索引。
CREATE INDEX 語法
在表上創(chuàng)建索引。允許重復(fù)值:
CREATE INDEX index_name ON table_name (column1, column2, ...);
創(chuàng)建唯一索引的語法如下:
CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...);
注意: 創(chuàng)建索引的語法在不同的數(shù)據(jù)庫中有所不同。因此,請檢查您的數(shù)據(jù)庫中創(chuàng)建索引的語法。
CREATE INDEX 示例
下面的 SQL 語句在 "Persons" 表的 "LastName" 列上創(chuàng)建一個名為 "idx\_lastname" 的索引:
CREATE INDEX idx_lastname ON Persons (LastName);
如果要在多列的組合上創(chuàng)建索引,可以在括號內(nèi)列出列名,用逗號分隔:
CREATE INDEX idx_pname ON Persons (LastName, FirstName);
DROP INDEX 語句
DROP INDEX 語句用于刪除表中的索引。
MS Access:
DROP INDEX index_name ON table_name;
SQL Server:
DROP INDEX table_name.index_name;
DB2/Oracle:
DROP INDEX index_name;
MySQL:
ALTER TABLE table_name DROP INDEX index_name;
通過這些 SQL 語句,您可以在數(shù)據(jù)庫中創(chuàng)建索引,提高數(shù)據(jù)檢索的效率。如果索引不再需要,也可以使用 DROP INDEX 語句將其刪除。
SQL AUTO INCREMENT字段
AUTO INCREMENT 允許在將新記錄插入表時自動生成唯一編號。通常,這是我們希望每次插入新記錄時自動創(chuàng)建的主鍵字段。
MySQL 語法
以下 SQL 語句在 "Persons" 表中定義了 "Personid" 列為自動遞增主鍵字段:
CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);MySQL 使用 AUTO_INCREMENT 關(guān)鍵字來執(zhí)行自動遞增功能。默認情況下,AUTO_INCREMENT 的起始值為 1,每插入一條新記錄它就會遞增 1。
要讓 AUTO_INCREMENT 序列從另一個值開始,請使用以下 SQL 語句:
ALTER TABLE Persons AUTO_INCREMENT=100;
要將新記錄插入 "Persons" 表中,我們將無需為 "Personid" 列指定值(將自動添加唯一值):
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');上面的 SQL 語句將在 "Persons" 表中插入一條新記錄。 "Personid" 列將被分配一個唯一值。 "FirstName" 列將設(shè)置為 "Lars",而 "LastName" 列將設(shè)置為 "Monsen"。
SQL Server 語法
以下 SQL 語句在 "Persons" 表中定義了 "Personid" 列為自動遞增主鍵字段:
CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);MS SQL Server 使用 IDENTITY 關(guān)鍵字執(zhí)行自動遞增功能。在上面的示例中,IDENTITY 的起始值為 1,每插入一條新記錄它就會遞增 1。
提示: 要指定 "Personid" 列應(yīng)從值 10 開始遞增 5,請將其更改為 IDENTITY(10,5)。
要將新記錄插入 "Persons" 表中,我們將無需為 "Personid" 列指定值(將自動添加唯一值):
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');上面的 SQL 語句將在 "Persons" 表中插入一條新記錄。 "Personid" 列將被分配一個唯一值。 "FirstName" 列將設(shè)置為 "Lars",而 "LastName" 列將設(shè)置為 "Monsen"。
Access 語法
以下 SQL 語句在 "Persons" 表中定義了 "Personid" 列為自動遞增主鍵字段:
CREATE TABLE Persons (
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);MS Access 使用 AUTOINCREMENT 關(guān)鍵字執(zhí)行自動遞增功能。默認情況下,AUTOINCREMENT 的起始值為 1,每插入一條新記錄它就會遞增 1。
提示: 要指定 "Personid" 列應(yīng)從值 10 開始遞增 5,請將 AUTOINCREMENT 更改為 AUTOINCREMENT(10,5)。
要將新記錄插入 "Persons" 表中,我們將無需為 "Personid" 列指定值(將自動添加唯一值):
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');上面的 SQL 語句將在 "Persons" 表中插入一條新記錄。 "Personid" 列將被分配一個唯一值。 "FirstName" 列將設(shè)置為 "Lars",而 "LastName" 列將設(shè)置為 "Monsen"。
Oracle 語法
在 Oracle 中,代碼會復(fù)雜一些。您將不得不使用序列對象,此對象生成一個數(shù)字序列,來創(chuàng)建一個自動遞增字段。
使用以下 CREATE SEQUENCE 語法:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10;
上面的代碼創(chuàng)建了一個名為 seq_person 的序列對象,從 1 開始遞增 1。 它還將緩存最多 10 個值以提高性能。 緩存選項指定了將存儲在內(nèi)存中以加快訪問速度的多少個序列值。
要將新記錄插入 "Persons" 表中,我們必須使用 nextval 函數(shù),此函數(shù)從 seq_person 序列檢索下一個值:
INSERT INTO Persons (Personid, FirstName, LastName) VALUES (seq_person.nextval, 'Lars', 'Monsen');
上面的 SQL 語句將在 "Persons" 表中插入一條新記錄。 "Personid" 列將被分配 seq_person 序列的下一個數(shù)字。 "FirstName" 列
以上就是SQL CREATE INDEX提高數(shù)據(jù)庫檢索效率的關(guān)鍵步驟詳解的詳細內(nèi)容,更多關(guān)于SQL CREATE INDEX數(shù)據(jù)庫檢索的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL創(chuàng)建數(shù)據(jù)庫并支持中文字符的操作方法
這篇文章主要介紹了MySQL創(chuàng)建數(shù)據(jù)庫并支持中文字符的操作方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具體一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
關(guān)于Mysql8.0版本驅(qū)動getTables返回所有庫的表問題淺析
這篇文章主要給大家介紹了關(guān)于Mysql 8.0版本驅(qū)動getTables返回所有庫的表問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Mysql 5.7.19 免安裝版配置方法教程詳解(64位)
這篇文章主要介紹了Mysql 5.7.19 免安裝版配置方法教程詳解,需要的朋友可以參考下2017-08-08
SQL實現(xiàn)LeetCode(184.系里最高薪水)
這篇文章主要介紹了SQL實現(xiàn)LeetCode(184.系里最高薪水),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08

