【SQL进阶教程】第一章 case表达式

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

【知识点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)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

鼓掌,第一章完美结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值