一、索引
- 优点:提高了查询的效率。
缺点:索引本身也是一张表,不适合去大量的添加。不是处处设置索引。
- 实现过程:设置索引 使用索引
分类:单值索引,唯一索引,复合索引
- 单值索引:一个索引包含一列,创建单值索引(给常用来作为查询条件的字段添加)
语法:create index 索引名 on表名(加字段)
使用索引:加explain,找到possible_keys的值。
- 创建唯一索引(索引的值不能重复)
Create unique index 索引名 on 表名(字段)
- 创建复合索引
Create index 索引名 on 表名(字段1,字段2)
使用复合索引要遵循最左特性,负责索引会失效。
- 删除索引
Alter table 表名 index 索引名
- 表关联 association
- 目的:用来完成联合多张表的查询
- 描述两张表的关系,表名+字段名
笛卡尔积:把多张表用逗号隔开
Select*from 表名 ,表名 where 两张表的关系
- join.....on 连接查询
Select * from 表名 join 表名 on 两张表的关系 where 业务条件
- 三种连接查询:
相对高效,小表驱动大表,先查询一个小表的条件,然后再去查询大表里面的共性条件。
- 内连接:去两个表的交集
Select * from 表名 inner join 表名 on 表关系 where 业务条件
- 左外连接:左边的所有和右表满足条件的,不满足的是null
Select * from 表名 left join 表名 on 表关系 where 业务条件
- 右外连接:右边的所有和左边满足条件的,不满足的是null
Select * from 表名 right join 表名 on 表关系 where业务条件
子查询:先根据共性的查出来,把共性的条件放到所查询的具体内容里