在 SQL 中,列上的 INDEX
约束可以加快查询该列时检索数据的速度。
示例
-- create table
CREATE TABLE Colleges (
college_id INT PRIMARY KEY,
college_code VARCHAR(20) NOT NULL,
college_name VARCHAR(50)
);
-- create index
CREATE INDEX college_index
ON Colleges(college_code);
这里,SQL 命令使用 college_code 列在 Colleges 表上创建了一个名为 college_index 的索引。
SQL CREATE INDEX 语法
SQL CREATE INDEX
语句的语法是
CREATE INDEX index_name
ON table_name (column_name1, column_name2, ...);
这里,
index_name
是索引的名称table_name
是要创建索引的表的名称column_name1, column_name2, ...
是要包含在索引中的列的名称
CREATE UNIQUE INDEX 用于唯一值
如果您想为列中的唯一值创建索引,我们使用 CREATE UNIQUE INDEX
约束。例如,
-- create table
CREATE TABLE Colleges (
college_id INT PRIMARY KEY,
college_code VARCHAR(20) NOT NULL,
college_name VARCHAR(50)
);
-- create unique index
CREATE UNIQUE INDEX college_index
ON Colleges(college_code);
这里,SQL 命令使用 college_code 列在 Colleges 表上创建了一个名为 college_index 的唯一索引。
注意:尽管索引是为唯一值创建的,但表中原始数据保持不变。
从表中删除索引
要从表中删除 INDEX
,我们可以使用 DROP INDEX
命令。例如,
SQL Server
DROP INDEX Colleges.college_index;
PostgreSQL, Oracle
DROP INDEX college_index;
MySQL
ALTER TABLE Colleges
DROP INDEX college_index;
这里,SQL 命令从 Colleges 表中删除名为 college_index 的索引。
注意:在 SQL 中删除索引意味着只删除索引。原始表中的数据保持不变。
另请阅读