选读SQL经典实例笔记19_Any和All

 

1. Any

1.1. 任意一个

1.2. 选修了任意一门课程的学生

1.2.1. 找出选修了至少一门课程的学生

1.3. 比任何火车都快的飞机

1.3.1. 找出比所有火车都快的飞机

2. All

2.1. 全部

2.2. 吃所有蔬菜的人

2.2.1. 没有任何一种蔬菜他们不吃

3. 问题12

3.1. 选修了全部课程的学生

3.2. sql

select *from studentwhere sno not in( select s.snofrom student s, courses cwhere (s.sno,c.cno) not in (select sno,cno from take) )

3.3. 针对每一个学生,找出他们没有选过的课程,最后如果有谁不在其中,则他必定选修了全部课程

3.3.1. 最内层的子查询会返回所有有效的SNO/CNO组合

3.3.2. 中间一层的子查询使用STUDENT表和COURSES表之间的笛卡儿积,返回(假设每一个学生都选修了全部课程)所有可能的SNO/CNO组合,进而过滤掉有效的SNO/CNO组合(只留下了实际上不存在的SNO/CNO组合)

3.3.3. 最外层的查询,只有当SNO不存在于中间一层子查询结果时,才会被保留下来

3.4. DB2

3.5. SQL Server

3.6. 窗口函数COUNT OVER,并使用外连接而不是子查询

3.6.1.  sql

select sno,sname,agefrom (select s.sno,s.sname,s.age,count(t.cno)over (partition by s.sno) as cnt,count(distinct c.title) over() as total,row_number() over(partition by s.sno order by c.cno) as rnfrom courses cleft join take t    on (c.cno = t.cno)left join student s on (t.sno = s.sno)) xwhere cnt = totaland rn = 1

3.7. Oracle

3.7.1.  sql

select sno,sname,agefrom (select s.sno,s.sname,s.age,count(t.cno)over (partition by s.sno) as cnt,count(distinct c.title) over() as total,row_number() over(partition by s.sno order by c.cno) as rnfrom courses c, take t, student swhere c.cno = t.cno (+)and t.sno = s.sno (+))where cnt = totaland rn = 1

3.8. 外连接到COURSES表,而不是子查询

3.9. PostgreSQL

3.10. MySQL

3.11. 聚合函数COUNT找出选修所有课程的学生

3.11.1. sql

select s.sno,s.sname,s.agefrom student s, take twhere s.sno = t.snogroup by s.sno,s.sname,s.age
having count(t.cno) = (select count(*) from courses)

3.11.2. 使用子查询返回课程总数

3.11.3. 外层查询负责筛选出选修课程数量等于子查询返回值的学生

4. 问题13

4.1. 比任何其他学生年龄都大的学生

4.2. sql

select *from studentwhere age not in (select a.agefrom student a, student bwhere a.age < b.age)

4.3. 子查询使用笛卡儿积找出A表中年龄小于B表的学生的年龄值

4.4. 唯一不会比其他年龄值小的就是最大年龄值

4.5. 外层查询使用NOT IN,从STUDENT表中筛选出所有AGE不存在于上述子查询返回结果集的行

4.6. DB2

4.7. Oracle

4.8. SQL Server

4.9. 窗口函数MAX OVER找出年龄最大的学生

4.9.1.  sql

select sno,sname,agefrom (select s.*,max(s.age)over() as oldestfrom student s) xwhere age = oldest

4.10. PostgreSQL

4.11. MySQL

4.12. 聚合函数MAX找出年龄最大的学生

4.12.1. sql

select *from studentwhere age = (select max(age) from student)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/57107.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DARPA TC-engagement5数据集解析为json格式输出到本地

关于这个数据集的一些基本信息就不赘述了,参考我之前的博客。DARPA TC-engagement5数据集官方工具可视化 官方给的工具是将解析的数据存到elasticsearch的,但是数据集的解压增长率非常恐怖,对空间要求很高。因此针对这个问题,我对…

FreeRTOS源码分析-10 互斥信号量

目录 1 事件标志组概念及其应用 1.1 事件标志组定义 1.2 FreeRTOS事件标志组介绍 1.3 FreeRTOS事件标志组工作原理 2 事件标志组应用 2.1 功能需求 2.2 API 2.3 功能实现 3 事件标志组原理 3.1 事件标志组控制块 3.2 事件标志组获取标志位 3.3 等待事件标志触发 3.4…

如何离线安装ModHeader - Modify HTTP headers Chrome插件?

如何离线安装ModHeader - Modify HTTP headers Chrome插件? 1.1 前言1.2 打开Chrome浏览器的开发者模式1.3 下载并解压打包好的插件1.4 解压下载好的压缩包1.5 加载插件1.6 如何使用插件? 1.1 前言 ModHeader 是一个非常好用的Chrome浏览器插件,可以用…

SQL 数据科学:了解和利用联接

推荐:使用 NSDT场景编辑器助你快速搭建可编辑的3D应用场景 什么是 SQL 中的连接? SQL 联接允许您基于公共列合并来自多个数据库表的数据。这样,您就可以将信息合并在一起,并在相关数据集之间创建有意义的连接。 SQL 中的连接类型…

Java中常用的API概览及示例解析

文章目录 1. java.lang包1.1 String类1.2 StringBuilder类 2. java.util包2.1 ArrayList类2.2 HashMap类 3. java.io包3.1 File类3.2 FileInputStream和FileOutputStream类 Java作为一门广泛应用于软件开发的编程语言,拥有丰富的类库和API(Application P…

PHP实践:用openssl打造安全可靠的API签名验证系统

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已…

docker创建镜像并上传云端服务器

docker创建镜像并上传云端服务器 docker容器与镜像的关系1.基本镜像相关文件创建1.1 创建dockerfile文件1.2.创建do.sh文件1.3 创建upload_server_api.py文件1.4 创建upload_server_webui.py文件1.5 文件保存位置 2. 创建镜像操作2.1 创建镜像2.3 创建容器2.2 进入环境容器2.3 …

C++、python双语言弹窗教程与对比

Messagebox弹窗 MessageBox指的是显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。 例子: 本文介绍了用C、Pytho…

【CSS】旋转中的视差效果

效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…

探索产品项目管理软件的种类及功能

随着科技的不断发展&#xff0c;越来越多的企业开始重视产品项目管理的重要性。产品项目管理软件作为一种有效的工具&#xff0c;可以帮助企业更好地规划、执行和控制项目&#xff0c;提高项目的成功率。本文将分为两部分&#xff0c;分别介绍产品项目管理软件的功能以及一些知…

十四、ESP32播放音乐

1. 运行效果 2. 硬件电路 3. 代码 test.wav文件下载地址:

一、Webpack相关(包括webpack-dev-server用以热更新和html-webpack-plugin)

概念与功能&#xff1a; webpack是前端项目工程化的具体解决方案。它提供了友好的前端模块化开发支持&#xff0c;以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大的功能。 快速上手&#xff1a;隔行变色 -S实际是--save的简写&#xff0c;表示安装的第三方…