【SQL进阶教程】第一章 case表达式
本系列基于《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)
鼓掌,第一章完美结束!