单表多表操作
一、单表操作
1. 分组
-
group by:
指的是将所有记录按照某个相同字段进行归类。
-
用法:
select 聚合函数,选取的字段 from 表名 group by 分组的字段;
-
having:
表示group by 之后的数据,进行再一次的二次筛选。
-
顺序:
where > group by > having
2. 排序
-
order by:
用来按照某个字段进行升序或者降序排序。
-
用法:
order by 字段名 asc(升序)/desc(降序)
-
多次排序:
order by 字段名1 asc,字段名2 desc
表示 先对字段名1 进行升序排序,如果字段名1 内的记录有相同的行,则按字段名2 的降序排序
-
使用顺序:
where > group by > having > order by
3. 分页
-
limit 值1,值2
值1:数据起始索引
值2:取多少条数据
-
用法:
select * from employee limit 值1,值2;
-
使用顺序:
where > group by > having > order by > limit
4. 先后顺序
select * from 表名 where 条件 group by 条件 having 条件 order by 条件 limit 条件;
where > group by > having > order by > limit
二、多表操作
1. 外键
1.1 使用的原因
- 减少使用的空间
- 只需要修改表中一次,其余的表中的数据就会相应的修改数据
1.2 使用的方法
constraint 外键名 foreign key (被约束的字段) references 约束的表(约束的字段)
2. 多表关系
- 一对多
- 多对多
- 一对一
3. 多表联查
left join 。。。 on:
select * from 表1 left join 表2 on 表1.值1 = 表2.值2