数据库复习2
一. 简答题(共1题,100分)
1. (简答题)
存在数据库test,数据库中有如下表:
1.学生表
Student(Sno,Sname,Sage,Ssex) --Sno 学号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
主键Sno
2.教师表
Teacher(Tno,Tname) --Tno 教师编号,Tname 教师姓名
主键Tno
3.课程表
Course(Cno,Cname,Tno) --Cno --课程编号,Cname 课程名称,Tno 教师编号
主键Cno 外键Tno参照教师表
4.成绩表
SC(Sno,Cno,score) --Sno 学生编号,Cno 课程编号,score 分数
主键(Sno,Cno) 外键Sno,Cno分别参照学生表和课程表
按要求写出如下SQL语句:
1、查询已选课程的课程号与学生选修人数
2、查询所有课程的课程号、课程名与学生选修人数(考虑未选课程的信息,未选课程就显示0)
3、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(要考虑没有选课的同学,没有选课的同学选课数为0,总成绩为0)
4、查询学过"吴大"老师授课的同学的信息
5、查询没学过"吴大"老师授课的同学的信息
6、查询学过编号为"1"并且也学过编号为"2"的课程的同学的学号
7、查询学过编号为"1"并且也学过编号为"2"的课程的同学的学号,姓名,按学号降序。
8、查询学过编号为"1"但是没有学过编号为"2"的课程的同学的学号,姓名,按学号降序。
我的答案:
1.
select Cno,COUNT(Sno) cnt_student
from SC
group by Cno
2.
select co.Cno,co.Cname. ifnull(c.num,0) cnt_student
from Course co
left join(
select Cno,COUNT(Sno) num
from sc
group by Cno
)c
on c.Cno=co.Cno
3.
select Sno,Sname,ifnull(num,0) cnt_score,ifnull(the_score,0) total_score
from student s
left join (
select Sno,COUNT(*) num,SUM(score) the_score
from SC
group by Sno
) c
where s.Sno=c.Sno
4.
select s.*
from student s,Teacher t,Course co,SC c
where s.Sno=c.Sno and c.Cno=co.Cno and co.Tno = t.Tno and Tname='吴大'
5.
select s.*
from student s,SC c
where s.Sno = c.Sno and c.Sno not in(
select s.Sno
from student s,Teacher t,Course co,SC c
where s.Sno=c.Sno and c.Cno=co.Cno and co.Tno = t.Tno and Tname='吴大'
)
6.
select Sno
from SC
where Cno ='1' and Sno in(
select Sno
from SC
where Cno ='2'
)
7.
select s.Sno,s.Sname
from Student s,SC c
where s.Sno=c.Sno and c.Cno = '1' and c.Sno in(
select Sno
from SC
where Cno ='2'
)
order by s.Sno desc
8.
select s.Sno,s.Sname
from Student s,SC c
where s.Sno=c.Sno and c.Cno = '1' and c.Sno not in(
select Sno
from SC
where Cno ='2'
)
order by s.Sno desc
标准参考答案
1、SELECT cno,count(*) from sc GROUP BY cno;
2、SELECT course.Cno,Cname,COUNT(sc.sno) from course LEFT OUTER JOIN sc ON course.cno=sc.Cno
GROUP BY course.Cno;
3、SELECT student.sno,student.Sname, count(sc.sno), IFNULL(sum(sc.score),0)
FROM student LEFT OUTER JOIN sc
ON student.sno=sc.sno
GROUP BY student.sno ;
4、 SELECT student.*
from student,sc,course,teacher
where teacher.Tno=course.Tno and course.Cno=sc.Cno and sc.Sno=student.Sno
and teacher.Tname='吴大';
5、 SELECT s.* from student s
WHERE sno not in (SELECT student.sno
from student,sc,course,teacher
where teacher.Tno=course.Tno and course.Cno=sc.Cno and sc.Sno=student.Sno
and teacher.Tname='吴大');
6、错误:select sno from sc where cno='1' or cno='2';
正确:
select cc1.sno from sc cc1
where cno='1' and EXISTS
(SELECT * from sc cc2 where cc1.sno=cc2.sno and cc2.cno='2');
或:
select sno from sc where cno='1' and sno in(
select sno from sc where cno='2') ;
或者用派生表:
select sno from sc where cno='1' and sno in(
select s_sno from (select sno from sc where cno='2') as s_sc(s_sno));
7、select student.sno,student.Sname from student, sc cc1
where student.sno=cc1.Sno and cno='1' and EXISTS
(SELECT * from sc cc2 where cc1.sno=cc2.sno and cc2.cno='2')
ORDER BY student.Sno DESC;
8、select student.sno,student.Sname from student, sc cc1
where student.sno=cc1.Sno and cno='1' and NOT EXISTS
(SELECT * from sc cc2 where cc1.sno=cc2.sno and cc2.cno='2')
ORDER BY student.Sno DESC;
相关文章:
数据库复习2
一. 简答题(共1题,100分) 1. (简答题) 存在数据库test,数据库中有如下表: 1.学生表 Student(Sno,Sname,Sage,Ssex) --Sno 学号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 主键Sno 2.教师表 Teacher(Tno,Tname) --T…...
公众号运营之竞品分析,教你拆解公众号
知己知彼,百战不殆,公众号运营亦是如此。 当运营者只关注自己账号的时候,很容易陷入某个误区中出不来。这个时候就要拓宽我们的视野,多去看看“外面的世界”,不要只局限于自己的一片小天地中。 看看同领域优秀公众号…...
python常见问题详解
Python python 没有多态,而是鸭子类型 多继承,没有接口,可通过语法糖实现接口的作用 lambda中只能有一句 "/"表示之前的参数是必须是位置参数,”**“表示是后面的必须是关键字参数 Python多进程 Python 多线程是伪多线…...
MyBatis-常用SQL操作
一、动态SQL 1.概述】 1.1动态SQL: 是 MyBatis 的强大特性之一,解决拼接动态SQL时候的难题,提高开发效 1.2分类: if choose(when,otherwise) trim(where,set) foreach 2.if 2.1 做 where 语句后面条件查询的,if 语句是可以…...
DSPE-PEG-TCO;磷脂-聚乙二醇-反式环辛烯科研用化学试剂简介
中文名称 磷脂-聚乙二醇-反式环辛烯 英文名称 DSPE-PEG-TCO 外观:粉末或半固体,取决于分子量。 溶剂:溶于大部分有机溶剂,如:DCM、DMF、DMSO、THF等等。在水中有很好的溶解性 稳定性:冷藏保存ÿ…...
华为OD机试真题Java实现【最小施肥机能效】真题+解题思路+代码(20222023)
最小施肥机能效 某农场主管理了一大片果园,fields[i]表示不同果林的面积,单位:( m 2 m^2 m2),现在要为所有的果林施肥且必须在 n 天之内完成,否则影响收成。 小布是果林的工作人员,他每次选择一片果林进行施肥,且一片果林施肥完后当天不再进行施肥作业。 假设施肥机的…...
【问题记录】【排查问题的方法总结】vue3中数据失去响应式?为什么数据变了,视图只更新了一次就不再更新了?
一、问题概述: 持续请求的数据变动之后,控制台输出绑定的响应式变量 mapObj 的确变了,但是视图上只更新了一次,后续就不再更新了。 二、排查过程: PC上用定时器setInterval模拟数据(全是小于0的数据)更新࿰…...
基于遗传算法的柔性生产调度研究(Matlab代码实现)
👨🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...
Heroku的12条准则
I. Codebase One codebase tracked in revision control, many deploys 要有代码仓库,多版本控制,如使用git来管理代码仓库。 II. Dependencies Explicitly declare and isolate dependencies 明确声明依赖,隔离依赖。强依赖往往会导致连…...
Qt图片定时滚动
目录参考结构PicturePlay.promain.cpppictureplay.hpictureplay.cpppictureplay.ui效果参考 Qt图片浏览器 QT制作一个图片播放器 Qt中自适应的labelpixmap充满窗口后,无法缩小只能放大 可以显示jpg、jpeg、png、bmp。可以从电脑上拖动图到窗口并显示出来或者打开文件…...
深度学习引言
动手学深度学习pytorch版-笔记原文链接日常生活中的机器学习机器学习中的关键组件数据模型目标函数优化算法各种机器学习问题监督学习回归分类标记问题搜索推荐系统序列学习无监督学习与环境互动强化学习特点小结原文链接 动手学深度学习pytorch中文版 日常生活中的机器学习 …...
ESP32 WIFI使用介绍
ESP32 WIFI 概述 WIFI 库支持配置及监控 ESP32 WIFI 连网功能。支持配置 station 模式(即 STA 模式或 WIFI 客户端模式),此时 ESP32 连接到接入点(AP)。AP 模式(即 soft-AP 模式或接入点模式)&…...
JavaEE简单实例——MyBatis的一对一映射的嵌套查询的简单介绍和基础配置
简单介绍: 在前一章我们介绍了关于MyBatis的多表查询的时候的对应关系,其中有三种对应关系,分别是一对一,一对多,多对多的关系。如果忘记了这三种方式的对应形式可以去前面看看,一定要记住这三种映射关系的…...
详解指针(进阶版)(1)
前言:总篇章分为(1)和(2),本篇内容包括:指针数组,数组指针,&数组名与数组名的区分 数组传参 ,函数指针,函数指针数组 part 1:指…...
【OJ】盐荒子孙
📚Description: 盐体图 盐是对人类生存具有重要意义的物质之一。当中国古人从肉食为主转向谷食为主的时候,吃盐的需求就发生了,因为动物血肉里面包含有足够人体所需的盐分,而谷 物本身不包含盐分。在长达几十万年的旧石器时代&…...
Java数据结构 —— 手写线性结构(稀疏数组、栈、队列、链表)
目录 稀疏数组 顺序表 链表 单向顺序链表 双向链表 双向循环链表求解约瑟夫环(Joseph) 栈 顺序栈 队列 顺序队列 顺序循环队列 稀疏数组 当一个数组中大部分值为0,或者相同时,可以采用稀疏数组的方式来保存,从而节约存储…...
docker部署gitlab过程中遇到的一些问题记录
文章目录用nginx代理docker部署的gitlab服务密码重置docker0网卡异常离线安装apt的包用nginx代理docker部署的gitlab服务 一般咱们不会去暴露很多端口给外面,所以部署完gitlab后,我希望能够用nginx来代理我们的gitlab服务。 gitlab的docker部署参考这个…...
数组的定义与使用
文章目录 数组的基本概念数组的基本用法数组与方法互操作一、数组的基本概念 数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 注意:1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3. 每个空间有自己的编号࿰…...
SAP ABAP用程序删除开发KEY
在BASISI系统管理中,用户的开发Key存储在DEVACCESS表中,如果由于审计需要删除一些用户的开发Key,而系统有限制SM30, SE16 or SE16N 等事务码的使用,你就可以通过一个小程序去删除开发Key。 代码如下: REPORT ZBCDEV…...
安卓设备TF卡概率性无法识别问题
现象 使用t卡的设备出货前检测是正常的,放在仓库中或出货后再开机,有概率的机器无法识别,重新插拔或重启无效,拔下来放pc电脑上识别后再插回设备则恢复正常能识别。 设备信息 系统: Android 8.1.0 数量:抽检有12%的设备无法识别 TF卡:SanDisk Ultra 64GB 10 A1 microS…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
