diff --git "a/19 \346\235\216\345\273\272\345\221\250/20230321\345\244\215\344\271\240\347\273\203\344\271\240\351\242\230.md" "b/19 \346\235\216\345\273\272\345\221\250/20230321\345\244\215\344\271\240\347\273\203\344\271\240\351\242\230.md" new file mode 100644 index 0000000000000000000000000000000000000000..8a40b68753a004bb011781f717e176a02ffcb371 --- /dev/null +++ "b/19 \346\235\216\345\273\272\345\221\250/20230321\345\244\215\344\271\240\347\273\203\344\271\240\351\242\230.md" @@ -0,0 +1,65 @@ +整体结果 +​ 如果字段值不是null,那么使用字段值作为ifnull函数的整体结果 +​ 举例: +​ ifnull(english,0): +​ 1)假设english的值是null===>ifnull(null,0)===>整体结果是0 +​ 2)假设english的值是80===>ifnull(80,0)===>整体结果是80 +*/ + + +​ + +-- 分组 + -- 准备数据 + create table car( + id int, + color char(2), + price float + ); + +​ insert into car(id,color,price) values(1,'黄色',16); +​ insert into car(id,color,price) values(2,'黄色',16); +​ insert into car(id,color,price) values(3,'蓝色',5); +​ insert into car(id,color,price) values(4,'红色',60); +​ insert into car(id,color,price) values(5,'白色',8); +​ insert into car(id,color,price) values(6,'红色',60); + +​ -- 1.查询每种颜色车辆的总价 +select color,sum(price) from car group by color; +​ -- 2.查询每种颜色车辆总价大于30车辆的颜色和总价 +select color,sum(price) from car having sum(price)>30; +​ -- 3.注意:分组查询的结果最好是分组字段和聚合函数,不要是其他字段 + +​ -- 4.where后面不能使用聚合函数 报错的 + +​ -- 小结:where是在分组前筛选,having是在分组后筛选 +​ -- 5.查询车的单价大于15的每种颜色车辆总价大于30车辆的颜色和总价 + +SELECT color,sum(price) from car WHERE price>15 GROUP BY color HAVING sum(price)>30; + +-- 分页 + -- 1.分页查询数据,每页显示2条数据 + -- 第一页 + -- 0 表示起始索引,对应第一行数据 + -- 2表示每页显示2条数据 + +SELECT * FROM stu LIMIT 0,2; + +​ -- 当起始索引是0的情况下可以不写索引0,写法如下, +​ -- 下面的2表示每页显示的数据行数 + +​ -- 第二页 +​ -- 第一个2表示起始索引,对应三行数据 +​ -- 第二个2表示每页显示两条数据,对于第二个参数每个公司基本是固定的,最后一页剩下几行数据 +​ -- 就会显示几行数据 + +SELECT * FROM stu LIMIT 2,2; + +​ -- 第三页 +​ /* +​ 公式: 起始索引 = (当前页码-1)*每页显示的条数 +​ 0 1 2 +​ 2 2 2 +​ 4 3 2 +​ */ + SELECT * FROM stu LIMIT 4,2; \ No newline at end of file