面试题答案
一键面试创建普通索引
-- 方式一:在创建表时创建普通索引
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
INDEX index_name (column1)
);
-- 方式二:在已存在的表上创建普通索引
CREATE INDEX index_name ON table_name (column1);
-- 方式三:使用ALTER TABLE语句创建普通索引
ALTER TABLE table_name ADD INDEX index_name (column1);
普通索引适用于经常进行单条件查询(例如 SELECT * FROM table_name WHERE column1 = 'value';
)的场景,它可以加快查询速度,但不限制值的唯一性。
创建唯一索引
-- 方式一:在创建表时创建唯一索引
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
UNIQUE INDEX index_name (column1)
);
-- 方式二:在已存在的表上创建唯一索引
CREATE UNIQUE INDEX index_name ON table_name (column1);
-- 方式三:使用ALTER TABLE语句创建唯一索引
ALTER TABLE table_name ADD UNIQUE INDEX index_name (column1);
唯一索引适用于需要确保某列或某些列组合的值唯一的场景,并且在基于该列进行查询(如 SELECT * FROM table_name WHERE column1 = 'value';
)时也能提高查询效率,因为数据库可以利用唯一索引快速定位到唯一值。
创建联合索引
-- 方式一:在创建表时创建联合索引
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
INDEX index_name (column1, column2)
);
-- 方式二:在已存在的表上创建联合索引
CREATE INDEX index_name ON table_name (column1, column2);
-- 方式三:使用ALTER TABLE语句创建联合索引
ALTER TABLE table_name ADD INDEX index_name (column1, column2);
联合索引适用于经常使用多个列作为查询条件的场景,例如 SELECT * FROM table_name WHERE column1 = 'value1' AND column2 = 'value2';
。需要注意联合索引的最左前缀原则,即查询条件要从索引定义的最左边开始使用索引才会生效。