根据题目要求,我们需要对 actor
表的 first_name
列创建唯一索引(uniq_idx_firstname
),并对 last_name
列创建普通索引(idx_lastname
)。
代码实现步骤
-
创建唯一索引(
UNIQUE INDEX
):- 使用
ALTER TABLE
语句对表结构进行修改。 ADD UNIQUE INDEX
用于创建唯一索引,确保first_name
列中的值是唯一的。- 索引名称为
uniq_idx_firstname
,索引列是first_name
。
- 使用
-
创建普通索引(
INDEX
):- 使用
ALTER TABLE
语句对表结构进行修改。 ADD INDEX
用于创建普通索引,用于加速对last_name
列的查询。- 索引名称为
idx_lastname
,索引列是last_name
。
- 使用
SQL 解决方案
ALTER TABLE actor ADD UNIQUE INDEX uniq_idx_firstname (first_name);
ALTER TABLE actor ADD INDEX idx_lastname (last_name);
知识点拓展
1. 索引的类型
-
普通索引(
INDEX
):- 最常见的索引类型,用于加速查询。
- 不限制列中的值是否唯一。
- 示例:
ALTER TABLE table_name ADD INDEX index_name (column_name);
-
唯一索引(
UNIQUE INDEX
):- 用于确保列中的值是唯一的。
- 除了加速查询外,还用于防止重复数据。
- 示例:
ALTER TABLE table_name ADD UNIQUE INDEX index_name (column_name);
-
主键索引(
PRIMARY KEY
):- 每个表只能有一个主键索引。
- 主键索引不仅唯一,而且不允许为空。
- 示例:
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
-
全文索引(
FULLTEXT
):- 用于全文搜索,支持复杂的文本匹配。
- 仅适用于某些数据库引擎(如 MySQL 的 MyISAM)。
- 示例:
ALTER TABLE table_name ADD FULLTEXT index_name (column_name);
2. 创建索引的语法
-- 创建普通索引
ALTER TABLE table_name ADD INDEX index_name (column_name);
-- 创建唯一索引
ALTER TABLE table_name ADD UNIQUE INDEX index_name (column_name);
-- 创建主键索引
ALTER TABLE table_name ADD PRIMARY KEY (column_name);