tp5 中->where 包含_SQL中的汇总分析

  1. 汇总分析

汇总函数:

count:求某列的行数
sum:对某列数据求和
avg:求某列数据的平均值
max:求某列数据的最大值
min:求某列数据的最小值

· 用法:

SELETE <函数(可嵌套函数)> FROM <表名>;

应用案例:

b10cc102e435d9024857d7e1822a0626.png

2. 分组查询

· 用法:

SELETE <字段>,<函数>,…… FROM <表名> WHERE <条件> GROUP BY <字段>;

应用案例:

16e3bc61949aafd612b314098ced1a1b.png

17d9991b54274e9633f2e9aaf4fbeb8a.png

3. 对分组结果制定条件

· 用法:

SELETE <字段>,<函数>,…… FROM <表名> WHERE <条件> GROUP BY <字段> HAVING <条件>;

应用案例:

fd84b41400c4f1d37bb38c57550a28db.png

18dcaa093d1fae6ad97c39f88bb27432.png
补充:HAVING关键字和WHERE关键字都是过滤数据的,二者有何区别?
解答:HAVING在数据分组之后进行过滤来选择分组,而WHERE是在分组之前选择记录。
      WHERE排除的记录不再包括在分组里。

4. 用SQL解决业务问题

理解业务问题>>写出分析思路>>写出对应的SQL语句

应用案例:

6ae100a581aa7a7d78c348bf4a461fb9.png
问题理解:查询出平均成绩大于等于80分的课程号及对应平均成绩
关键字段:课程号,平均成绩
数据来源:course(其中包含学号、课程号、成绩)
分组维度:课程号
条件:平均成绩大于等于80分

5. 对查询结果排序

· 用法:

SELETE <字段1>,<字段2>,…… FROM <表名> WHERE <条件> 
GROUP BY <字段> HAVING <条件> ORDER BY <字段1><关键字1>,<字段2><关键字2>……;

· 说明:

①对查询结果进行排序使用ORDER BY子句;
②当ORDER BY子句后以字段结尾(未指定排序方式),默认从第一列开始升序排序,如果第一列数据中
  所有值唯一,将不再对第二列进行排序。
③需要指定排序方向时,使用关键字DESC表示降序,ASC表示升序;
④对多列进行排序时,会依照子句中列名的先后顺序进行排序。

应用案例:

51c5c7373ceace8cd9752d9cda853b3f.png

fa27e64534cd18b8f27456ae504d6a4f.png

6. 限制查询结果数量:

· 用法:

在语句末尾加上LIMIT关键字,如果LIMIT后面只有一个数字,则表示起始行为第一行。

SELETE ……FROM …… LIMIT[位置偏移量(即起始行-1)],[行数];

7. 如何看懂报错信息

在Navicat运行界面下方有信息选项卡,可以据此判定在哪里发生何种错误。

常见问题:

① 在GROUP BY中使用了SELECT的别名;

② 在WHERE中使用聚合函数(如count等);

③ 数字类型错误设置为字符串类型,导致排序错误。

习题1:

8217abe3e6252bc51c5c8b72cd1471db.png

76d353ca4db9224281a3291ef78848f3.png

14542d1fd01567701e006e58f6171b4b.png

e0274825576f0ffe0c1d8b2cbc2522f7.png

2a01720d6617fcb9f328a9524e4fcdee.png

ac56105ee16a27168ecdab281d05107e.png

dc1fb09283d6b9f4edcd83b69e6615ee.png

e41d871ce3b2d1668f801f384a669d0f.png

be99c2cbac49438db9ff3fb5e0086f38.png

2f15041e6dbb5e43c52c9f9f01ece2c5.png

13f8fb46ee7f4e2eb04736894450019f.png

1c66b9e18554127d3afbdb983b78f9f2.png

73d2eb8e7c989f61eb16a052fbd2c2dc.png

4651067af785ae9fffbbba6d744ced43.png

ccdfbf3cbf539ca0eefff23fed7478b9.png

总结:

1> like的语法不熟练,需要另外练习;
2> 转义单引号的方式是在前面多打一个,让系统识别下一个是单引号标识;
3> 记住类似最后一题,可以将特殊字符转为0或1这种灵活应用。

习题2:

bc363b8792a77aa4a3392131b13c19bc.png

61e9a84c230005919eeb6ef44f2844da.png

6828d6de6d50d5080c4b0abcc4ff30b3.png

3913034d1aa1a6977326cb28417d0d72.png

c732b9414fa8285afcb05cdbfbcf4290.png

a911adda903d2ea39942f9f0aad2c604.png

0aa28dd0217134560973102293e9e77b.png

16cc2fc3bbdd8568cdcd0a5e2d729d13.png

503431a6aaf32933e3b301f8e1f6b5f9.png

总结:

用WHERE和HAVING的时候,后面子句的用法掌握不好,写的时候会自我怀疑,需要熟记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值