MySQL的检索
1、索引的引入
索引定义:索引是由数据库表中一列或者多列组合而成,
其作用是提高对表中数据的查询速度;类似于图书的目录,方便快速定位,寻找指定的内容。
2、索引的优缺点
优点:提高查询数据的速度;
缺点:创建和维护索引的时间增加了

创建索引的三种方式:
一、创建表的时候可以创建索引
create table 表名 (属性名 数据类型 [约束条件],
属性名 数据类型 [约束条件],
…..
属性名 数据类型
[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY
​​​别名​​);

二、在已经存在的表上创建索引
create [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 on 表名
(属性名 [(长度)][asc|desc]);

三、用alter table语句创建索引
alter table 表名 add [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名
(属性名 [(长度)][asc|desc]);

1、创建普通索引
这类索引可以创建在任何数据类型中

CREATE TABLE t_user1(id INT , 
userName VARCHAR(20),
PASSWORD VARCHAR(20),
INDEX (userName)
);


2、唯一性索引
使用UNIQUE参数可以设置,创建唯一性索引是,限制该索引的值必须是唯一的

CREATE TABLE t_user2(id INT , 
userName VARCHAR(20),
PASSWORD VARCHAR(20),
UNIQUE INDEX index_userName(userName)
);

上面1,2都属于单列索引

3、多列索引
多列索引是在表的多个字段上创建一个索引

CREATE TABLE t_user3(id INT , 
userName VARCHAR(20),
PASSWORD VARCHAR(20),
INDEX index_userName_password(userName,PASSWORD)
);


1、创建普通索引
CREATE INDEX index_userName ON t_user4(userName);

2、唯一性索引
CREATE UNIQUE INDEX index_userName ON t_user4(userName);
3、多列索引
CREATE INDEX index_userName_password ON t_user4(userName,PASSWORD);
1、创建普通索引
ALTER TABLE t_user5 ADD INDEX index_userName(userName);
2、唯一性索引
ALTER TABLE t_user5 ADD UNIQUE INDEX index_userName(userName);
3、多列索引
ALTER TABLE t_user5 ADD INDEX index_userName_password(userName,PASSWORD);

删除索引
DROP INDEX index_userName ON t_user5;