SQL CREATE INDEX 語句 SQL CREATE INDEX 語句用於在表中創建索引。 索引用於比其他方式更快地從資料庫中檢索數據。用戶無法看到索引,它們只是用於加速搜索/查詢。 註意: 使用索引更新表比不使用索引更新表需要更多的時間(因為索引也需要更新)。因此,只在經常進行搜索的列上創 ...
SQL CREATE INDEX 語句
SQL CREATE INDEX
語句用於在表中創建索引。
索引用於比其他方式更快地從資料庫中檢索數據。用戶無法看到索引,它們只是用於加速搜索/查詢。
註意: 使用索引更新表比不使用索引更新表需要更多的時間(因為索引也需要更新)。因此,只在經常進行搜索的列上創建索引。
CREATE INDEX 語法
在表上創建索引。允許重覆值:
CREATE INDEX index_name
ON table_name (column1, column2, ...);
創建唯一索引的語法如下:
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
註意: 創建索引的語法在不同的資料庫中有所不同。因此,請檢查您的資料庫中創建索引的語法。
CREATE INDEX 示例
下麵的 SQL 語句在 "Persons" 表的 "LastName" 列上創建一個名為 "idx_lastname" 的索引:
CREATE INDEX idx_lastname
ON Persons (LastName);
如果要在多列的組合上創建索引,可以在括弧內列出列名,用逗號分隔:
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 語句,您可以在資料庫中創建索引,提高數據檢索的效率。如果索引不再需要,也可以使用 DROP INDEX
語句將其刪除。
SQL AUTO INCREMENT欄位
AUTO INCREMENT
允許在將新記錄插入表時自動生成唯一編號。通常,這是我們希望每次插入新記錄時自動創建的主鍵欄位。
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
關鍵字來執行自動遞增功能。預設情況下,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" 列將設置為 "Lars",而 "LastName" 列將設置為 "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
關鍵字執行自動遞增功能。在上面的示例中,IDENTITY
的起始值為 1,每插入一條新記錄它就會遞增 1。
提示: 要指定 "Personid" 列應從值 10 開始遞增 5,請將其更改為 IDENTITY(10,5)
。
要將新記錄插入 "Persons" 表中,我們將無需為 "Personid" 列指定值(將自動添加唯一值):
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
上面的 SQL 語句將在 "Persons" 表中插入一條新記錄。 "Personid" 列將被分配一個唯一值。 "FirstName" 列將設置為 "Lars",而 "LastName" 列將設置為 "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
關鍵字執行自動遞增功能。預設情況下,AUTOINCREMENT
的起始值為 1,每插入一條新記錄它就會遞增 1。
提示: 要指定 "Personid" 列應從值 10 開始遞增 5,請將 AUTOINCREMENT
更改為 AUTOINCREMENT(10,5)
。
要將新記錄插入 "Persons" 表中,我們將無需為 "Personid" 列指定值(將自動添加唯一值):
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
上面的 SQL 語句將在 "Persons" 表中插入一條新記錄。 "Personid" 列將被分配一個唯一值。 "FirstName" 列將設置為 "Lars",而 "LastName" 列將設置為 "Monsen"。
Oracle 語法
在 Oracle 中,代碼會複雜一些。您將不得不使用序列對象,此對象生成一個數字序列,來創建一個自動遞增欄位。
使用以下 CREATE SEQUENCE
語法:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
上面的代碼創建了一個名為 seq_person
的序列對象,從 1 開始遞增 1。 它還將緩存最多 10 個值以提高性能。 緩存選項指定了將存儲在記憶體中以加快訪問速度的多少個序列值。
要將新記錄插入 "Persons" 表中,我們必須使用 nextval
函數,此函數從 seq_person
序列檢索下一個值:
INSERT INTO Persons (Personid, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen');
上面的 SQL 語句將在 "Persons" 表中插入一條新記錄。 "Personid" 列將被分配 seq_person
序列的下一個數字。 "FirstName" 列
最後
為了方便其他設備和平臺的小伙伴觀看往期文章:
微信公眾號搜索:Let us Coding
,關註後即可獲取最新文章推送
看完如果覺得有幫助,歡迎 點贊、收藏、關註