本系列基于《SQL进阶教程》(如下图)学习,实现了书中代码及练习题代码。PS:电子书请大家各自默默脚本之家。

【知识点1】case表达式概述
Case表达式有简单case表达式和搜索case表达式




【知识点2】将已有编号方式转换为新的方式并统计


(1)统计四国、九州和其他的人口数
正确答案一:

正确答案二:简写

虽然GROUP BY 早于SELECT执行,但是mysql和PostgreSQL可以顺利执行,因为这些数据库执行查询语句前,会先对SELECT子句里的列表进行扫描,并对列进行计算;但是Oracle、DB2、SQL Server等数据库会报错。
正确答案三:创建视图试一下——成功


(2)按照人口数量等级划分
正确答案一:书上

正确答案二:视图

PS:这里一直错误,因为忘记删除FROM之前的,默默在心里揍自己一下

【知识点3】用一条SQL语句进行不同条件的统计

(1)分别统计各县的男女人数
正确答案一:

正确答案二:这个我承认是真的牛

【知识点4】用CHECK约束定义多个列的条件关系
(1)创建表时CHECK约束(mysql加不加好像没啥区别,但是下列语句是mysql写的)


(1)约束(sex = 1)的工资必须是20000下(仅作例子)



PS:逻辑与表达的结果是只能是女性,且工资必须小于20万日元,与题意不符合
【知识点5】在UPDATE语句中进行条件分支
(1)对当前工资为30万日元以上的员工,降薪10%;
对当前工资为25万日元以上且不满28万日元的员工,加薪20%


PS:UPDATE 不需要加TABLE
(2)实现主键值调换

【知识点6】表之间的数据匹配


(1)生成交叉表
错误示范一:

正确答案一:in


【知识点7】在case表达式中使用聚合函数




练习题





(2)转换行列


正确答案:为自己鼓掌~~~,这是我写出的,但是最后一个sum确实有点蠢



(3)order by 生成指定排序列(按照B-A-D-C)




鼓掌,第一章完美结束!
本文是《SQL进阶教程》的第一章,详细介绍了CASE表达式的使用,包括简单CASE和搜索CASE,讲解了如何用CASE进行数据转换、统计、条件分支以及在UPDATE语句中的应用。同时,通过实例探讨了不同数据库系统的执行差异,提供了各种统计方法和表间数据匹配的解决方案。章节涵盖人口统计、条件统计、CHECK约束、UPDATE语句和聚合函数的应用,最后以练习题巩固所学。
1153

被折叠的 条评论
为什么被折叠?



