MySQL数据库学习笔记(二)
排序查询:select 字段列表 from [表名] order by [字段名1] [asc升序/desc降序,默认值为升序],[字段名2] [排序方式];//字段名1为优先级排序,如果字段名1有相同的,再以字段名2排序
聚合函数:
count | 统计数量(一般不选null的列) |
max | 最大值 |
min | 最小值 |
sum | 总和 |
avg | 平均值 |
Select 聚合函数(字段名) from 表名;//null值不参与所有聚合函数运算 ! !
分组查询:selcet 字段列表 from [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];//分组后查询的字段为聚合函数和分组字段,查询其他字段无意义,执行顺序:where>聚合函数>having
eg:select sex,avg(score),count(*) from where score>60 student group by sex having count(*)>1;//查询student表格中以sex(性别)为分组的score值大于60的人的平均score(成绩)并且前面加上sex的数据后面加上分组后每个组的数量,如果人数小于2则过滤掉
分页查询:select 字段列表 from limit 起始索引 , 查询条目数;//起始索引=(当前页码-1)*每页显示的条数
—多表查询—
基础:select *from 表名1,表名2; 这种查会显示表1和表2的集合乘,即展示的表会有表1数量乘表2数量的乘积。
隐式内连接:select 字段列表 from 表1,表2… where 条件;
显示内连接:select 字段列表 from 表1 [inner] join 表2 on 条件;//这两种差不多,只是表达不一样。
左右连接:select 字段列表 from 表1 left/right join 表2 on 条件;//显示左/右边的所有数据(因为有些条件会不显示部分数据或有些数据为null)