首页 > IT职业 > > 针对表中的某个字段创建唯一索引和普通索引
针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
create index idx_emp_no on salaries(emp_no);(1)SQLite环境中
在SQLite环境中,强制索引使用INDEXED BY 索引名
创建索引(这个题目默认已建立了索引)
CREATE INDEX idx_emp_no ON salaries(emp_no);现在使用 INDEXED BY 子句从表salaries 中选择数据
SELECT *
FROM salaries
INDEXED BY idx_emp_no
WHERE emp_no=10005;(2)MySQL环境中
在MySQL中,强制索引使用:FORCE INDEX(索引名);
-- 创建索引
CREATE INDEX id_emp_no ON salaries(emp_no);
-- 使用 FORCE INDEX 子句从表salaries中选择数据
SELECT *
FROM salaries
FORCE INDEX (idx_emp_no)
WHERE emp_no = 10005;针对如下表actor结构创建索引:
(注:在 SQLite 中,除了重命名表和在已有的表中添加列,ALTER TABLE 命令不支持其他操作)
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime('now','localtime')))对first_name创建唯一索引uniq_idx_firstname,对last_name创建普通索引idx_lastname
(请先创建唯一索引,再创建普通索引)
CREATE UNIQUE INDEX uniq_idx_firstname
ON actor(first_name);
CREATE INDEX idx_lastname
ON actor(last_name);来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31509949/viewspace-3118538/ ,如需转载,请注明出处,否则将追究法律责任。