当前位置: 首页 > news >正文

数据库SQL语言实战(二)

目录

检索查询

题目一

题目二 

题目三 

题目四 

题目五

题目六 

题目七

题目八 

题目九(本篇最难的题目)

分析

实现(两种方式)

 模板

总结 


检索查询

按照要求查找数据库中的数据

题目一

找出没有选修任何课程的学生的学号、姓名(即没有选课记录的学生)

select sid,name
from pub.student
where sid in ((select sid from pub.student)minus(select distinct sidfrom pub.student_course)
)

关键点:

1、没有选修任何课的学生=所有学生-选了课的学生

所有学生:select sid from pub.student

选了课的学生:select distinct sid  from pub.student_course

2、减号就是minus关键字

题目二 

找出至少选修了学号为“200900130417”的学生所选修的一门课的学生的学号、姓名(不包含这名同学)。

select sid,name
from pub.student
where sid in((select distinct sidfrom pub.student_coursewhere cid in (select cidfrom pub.student_coursewhere sid='200900130417'))minus(select sidfrom pub.studentwhere sid='200900130417')
)

关键点:

找“200900130417”学号的学生选修的全部课程——》找pub.student_course中cid在全部课程中的选课记录——》拿出sid在pub.student中进一步获取name

题目三 

找出至少选修了一门其先行课程号为“300002”号课程的学生的学号、姓名。

 select sid, namefrom  pub.studentwhere sid in(select sidfrom pub.student_coursewhere cid in ( select cidfrom pub.student_coursewhere pcid='300002')
)

关键点:

1、找先行课程号为“300002”号的课程——》找pub.student_course中cid在前面课程中的选课记录——》拿出sid在pub.student中进一步获取name

2、题目二和题目三的思路是相似的

题目四 

找出选修了“操作系统”并且也选修了“数据结构”,但是没有选修“程序设计语言”的学生的学号、姓名。

select sid,namefrom pub.studentwhere sid in((select sidfrom pub.student_coursewhere cid=(select cidfrom pub.coursewhere name='操作系统'))intersect(select sidfrom pub.student_coursewhere cid=(select cidfrom pub.coursewhere name='数据结构'))minus(select sidfrom pub.student_coursewhere cid=(select cidfrom pub.coursewhere name='程序设计语言')))

关键点:

1、干了A,并且干了B,但没有干C=A的结果 交 B的结果 减 C的结果

2、intersect关键字:取交集

题目五

 找出姓名叫“李龙”的学生的学号及其选修全部课程的课程号、课程名和成绩。

create view test3 as
select sid,cid,pub.course_name,score
from pub.student natural join pub.student_course natural join pub.course
where pub.student_name='李龙'
create view test2_05 asselect sid,cid,name,scorefrom pub.student_course natural join pub.coursewhere sid in(select sidfrom pub.studentwhere name='李龙')

关键点

1、 第一个代码是错误的。因为pub.student和pub.course中都有name属性,而这两者自然连接显然是不合理的

2、将三个自然连接拆为:两个自然连接+一个嵌套select语句

题目六 

查询2010级、计算机科学与技术学院、操作系统的学生成绩表,内容有学号、姓名、成绩。

  select sid,name,scorefrom pub.student_course natural join pub.studentwhere class='2010' and dname='计算机科学与技术学院' and cid=(select cidfrom pub.coursewhere name='操作系统')

关键点:

1、同样考察自然连接的应用 

题目七

查询所有不姓张、不姓李、也不姓王的学生的学号sid、姓名name

select sid,name
from pub.student
where name not like '张%'
and name not like '李%'
and name not like '王%'

关键点:

1、 不姓A=not like ‘A%'

2、 名字不叫B=not like ‘%B’

题目八 

找出有间接先行课的所有课程的课程号、课程名称。

select cid ,name
from pub.course
where fcid in (select cidfrom pub.coursewhere fcid is not NULL
)

关键点:

1、 不为空=is not NULL

2、间接关系的处理(例:祖孙关系)

题目九(本篇最难的题目)

找出选修了所有课程的学生的学号、姓名。

分析

第一想法:拿出所有课程——》令pub.student_course(选用sid,cid)除取所有课程(cid)——》得到sid,这个sid'所选用的课程就是全部课程

问题是:SQL语言不提供直接可以用的除运算

实现(两种方式)

方法一、

select sid,name
from pub.student
where not exists(select cidfrom pub.coursewhere not exists(select * from pub.student_coursewhere pub.student_course.cid=pub.course.cid and pub.student_course.sid=pub.student.sid)
)

方法二、

select sid,name
from pub.student
where not exists((select cidfrom pub.course)minus(select cidfrom pub.student_coursewhere pub.student_course.sid=pub.student.sid)
)

 模板

查询做了所有(至少)A的B

SELECT * FROM S
WHERE NOT EXISTS(SELECT * FROM C WHERE C.`cno` IN ('C001','C002')AND NOT EXISTS(SELECT * FROM SCWHERE SC.`cno` = C.`cno` AND SC.`sno` = S.`sno` )
)

总结 

本文的所有题目均来自《数据库系统概念》(黑宝书)、山东大学数据库实验二。不可用于商业用途转发。

如果能帮助到大家,大家可以点点赞、收收藏呀~ 

相关文章:

数据库SQL语言实战(二)

目录 检索查询 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 题目九(本篇最难的题目) 分析 实现(两种方式) 模板 总结 检索查询 按照要求查找数据库中的数据 题目一 找出没有选修任何课程的学…...

idea错误地commit后如何处理

如果你想使用命令行重新初始化 Git 仓库,可以按照以下步骤进行: 删除该项目的.git文件夹 打开命令行终端。 切换到项目所在的目录,使用 cd 命令。 在项目目录下运行以下命令来重新初始化 Git 仓库 git init这将在当前目录下创建一个新的 Git …...

VRTK(Virtual Reality Toolkit)深入介绍

VRTK是一个为Unity引擎设计的开源虚拟现实(VR)开发框架,旨在简化和加速VR应用的开发过程。这个工具包包含了一系列的模块和预设,使得开发者可以快速集成标准的VR功能,如物体交互、环境导航、用户界面管理等。下面将对V…...

【LeetCode热题100】【贪心算法】划分字母区间

题目链接:763. 划分字母区间 - 力扣(LeetCode) 要将一个字符串划分为多个子串,要求每个字母只能出现在一个子串里面 如果一个字母的当前位置是它在这个字符串里面最后一次出现的位置,那么这里就应该划分出来成为子串…...

第二届数据安全大赛暨首届“数信杯”数据安全大赛数据安全积分争夺赛-东区预赛部分WP

这里写目录标题 检材下载:1.理论题2.数据安全:pb:Sepack: 3.数据分析:数据分析(1)数据分析1-1:数据分析1-2:数据分析1-3: 数据分析(3)数据分析3-1:数据分析3-2&#xff1…...

如何在Python中使用matplotlib库进行数据可视化?

如何在Python中使用matplotlib库进行数据可视化? 在Python中使用matplotlib库进行数据可视化 数据可视化是将数据以图形或图像的形式展示出来的过程,它有助于我们更好地理解和分析数据。在Python中,matplotlib是一个非常受欢迎的数据可视化…...

网工基础协议——TCP/UDP协议

TCP和UDP的不同点: TCP(Transmission Control Protocol,传输控制协议); UDP(User Data Protocol,用户数据报协议); TCP:传输控制协议,面向连接可靠的协议,只能适用于单播通信&…...

ClickHouse--16--普通函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、日期函数1、时间或日期截取函数(返回非日期)2、时间或日期截取函数(返回日期)3、日期或时间日期生成函数 二、类…...

03-JAVA设计模式-组合模式

组合模式 什么是组合模式 组合模式(Composite Pattern)允许你将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户端以统一的方式处理单个对象和对象的组合。组合模式让你可以将对象组合成树形结构,并且能像单独对象一…...

C++发票识别、发票查验接口示例,您的“发票管理专家”

发票识别发票查验接口。当财务人员在进行发票的数字化管理时,仅需一键上传发票图片,翔云发票识别接口即可快速、精准对发票的全票面信息进行提取,翔云发票查验接口可根据识别接口提取的发票信息实时联网进行真伪查验。助财务工作者从发票海洋…...

【电控笔记6.2】拉式转换与转移函数

概要 laplace:单输入单输出,线性系统 laplace 传递函数 总结...

第十五届蓝桥杯题解-数字接龙

题意:经过所有格子,并且不能进行交叉,走的下一个格子必须是当前格子值1%k,输出路径最小的那一条(有8个方向,一会粘图) 思路:按照8个方向设置偏移量进行dfs,第一个到达终…...

【vue】绑定事件 v-on

v-on 简写&#xff1a; clickkeyupkeydownkeyup.wkeyup.ctrl.a <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...

【应用】SpringBoot-自动配置原理

前言 本文简要介绍SpringBoot的自动配置原理。 本文讲述的SpringBoot版本为&#xff1a;3.1.2。 前置知识 在看原理介绍之前&#xff0c;需要知道Import注解的作用&#xff1a; 可以导入Configuration注解的配置类、声明Bean注解的bean方法&#xff1b;可以导入ImportSele…...

中文编程入门(Lua5.4.6中文版)第十二章 Lua 协程 参考《愿神》游戏

在《愿神》的提瓦特大陆上&#xff0c;每一位冒险者都拥有自己的独特力量——“神之眼”&#xff0c;他们借助元素之力探索广袤的世界&#xff0c;解决谜题&#xff0c;战胜敌人。而在提瓦特的科技树中&#xff0c;存在着一项名为“协同程序”的高级秘术&#xff0c;它使冒险者…...

C++笔记之注册回调函数常见的5种情况对比

C++笔记之注册回调函数常见的5种情况对比 —— 2024-04-10 code review! 文章目录 C++笔记之注册回调函数常见的5种情况对比1.五种情况2.示例2.1. `RegisterCallback` 和 `Callback` 都是普通函数2.2. `RegisterCallback` 是成员函数,`Callback` 是普通函数2.3. `RegisterC…...

人工智能揭示矩阵乘法的新可能性

人工智能揭示矩阵乘法的新可能性 数学家酷爱漂亮的谜题。当你尝试找到最有效的方法时&#xff0c;即使像乘法矩阵&#xff08;二维数字表&#xff09;这样抽象的东西也会感觉像玩一场游戏。这有点像尝试用尽可能少的步骤解开魔方——具有挑战性&#xff0c;但也很诱人。除了魔方…...

实在智能携手长江新零售俱乐部:探秘实在Agent数字员工,开启零售品牌增长新篇章

近日&#xff0c;实在智能携手长江新零售俱乐部成功举办了“AIGC&#xff1a;数字员工助力零售品牌新增长”主题活动&#xff0c;成功吸引了二十余家企业中高层管理精英的踊跃参与。在此次活动中&#xff0c;与会者围绕零售业数字化转型的当前态势、面临的挑战及其重要性进行了…...

计算机科学与导论 第十七 十八章 计算理论,人工智能

文章预览&#xff1a; 计算理论17.1 引言17.2 简单语言17.3 图灵机邱奇 -图灵 论题 人工智能引言18.1.1 什么是人工智能18.1.2 智能体18.1.3 编程语言 18.2 知识的表示18.2.1 语义网18.2.2 框架18.2.3 谓词逻辑18.2.4 基于规则的系统 18.2 专家系统18.3 语言理解18.4 搜索18.5 …...

linux 设置定时任务---学习

1、设置定时任务 crontab -e 设置格式参考&#xff1a;【Linux】Linux crontab 命令定时任务设置_crontab 设置每天10:30执行-CSDN博客 测试过程&#xff1a; */1 * * * * /root/cronjob.sh 脚本内容: echo "hell0 cronjob" >> /root/test/hello.txt 实现…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...