MySQL边学边记
程序员文章站
2022-06-12 07:51:19
...
DDL
操作数据库和表
数据库
show datebase
查看数据库
create datebase
创建数据库
DML
增删改表中的数据
DQL
查询表中的数据
SELECT *FROM student2; --查询student2 表中的所有表数据;
DQL排序
SELECT *FROM student2 order by match ASC/DESC;
将student2表中对match数据进行(ASC)升序排序(DESC)降序排序
多重排序
SELECT *FROM student2 order by match ASC ,English DESC;
如果match数据大小相等,则按English的降序排序。
聚合函数
将一列数据作为一个整体进行计算
SELECT COUNT(match) FROM student2;
将student2 中的match数据进行个数计算
COUNT计算个数
MAX最大值
MIN最小值
SUM计算和
AVG计算平均数
聚合函数的计算会排除null值
解决:
SELECT COUNT(IFNULL(match,0)) FROM student2;
SELECT COUNT(*) FROM student2;
只要有一列的值不为null就算进去
分组查询
SELECT sex ,AVG(math) FROM student2 GROUP BY sex;
查询sex表 然后按sex分组,最后再将分组的查询出match的平均值
SELECT sex ,AVG(math) FROM student2 WHERE math>70 GROUP BY sex;
查询sex表 ,将分数大于70的进行按sex分组,最后再将分组的查询出match的平均值
SELECT sex ,AVG(math) ,COUNT(id) FROM student2 GROUP BY sex HAVING COUNT(id)>2;
查询sex表 ,将分数大于70的进行按sex分组,最后再将分组的查询出match的平均值,分完组再进行count(id)是否大于2的判断。
where和having的区别
1.where是在分组前进行判断,如果不满足,不进行分组,having是在分组后进行判断,如果不满足,查询不出来
2.where不可以跟聚合函数 having可以
分页查询
SELECT *FROM student2 LIMIT 0,3;
语法:LIMIT 开始的索引,每页查询的个数
查询student2表然后从0开始查询3条记录
公式:开始的索引=(当前页面-1)*每页的条数