MySQL试题2

2023-11-16

##二、题目:
#01)查询" 1 "课程比" 2 "课程成绩高的学生的信息及课程分数
#方法一
	select s.*,t1.score,t2.score from
	(select sid,score from t_score where cid=1) t1,
	(select sid,score from t_score where cid=2) t2,
	t_student s
	where t1.sid=t2.sid and t1.sid=s.sid 
	and t1.score>t2.score

#方法二
select stu.*,t1.score,t2.score from t_student stu
INNER JOIN
(select * from t_score where cid = 1) t1
on stu.sid = t1.sid
INNER JOIN
(select * from t_score where cid = 2) t2
on t1.sid = t2.sid and t1.score > t2.score
	
#02)查询同时存在" 01 "课程和" 02 "课程的情况
#方法一
	select * from 
		(select * from t_score as sc where sc.cid=1) as t1,
		(select * from t_score as sc where sc.cid=2) as t2
	where t1.sid = t2.sid;	

#方法二
select stu.*,t1.score,t2.score from t_student stu
INNER JOIN
(select * from t_score where cid = 1) t1
on stu.sid = t1.sid
INNER JOIN
(select * from t_score where cid = 2) t2
on t1.sid = t2.sid 

	
#03)查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )

select stu.sname,tmp.c1,tmp.c2 from t_student stu inner join
	(select sid,
		SUM(case when cid = 1 then score else null end) c1,
		SUM(case when cid = 2 then score else null end) c2
	from t_score GROUP BY sid
	HAVING c1 is not null and c1>=0) tmp on stu.sid = tmp.sid
	
	
#04)查询不存在" 01 "课程但存在" 02 "课程的情况
select stu.sname,tmp.c1,tmp.c2 from t_student stu inner join
	(select sid,
		SUM(case when cid = 1 then score else null end) c1,
		SUM(case when cid = 2 then score else null end) c2
	from t_score GROUP BY sid
	HAVING c1 is null and c2 is not null) tmp on stu.sid = tmp.sid
	
#05)查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
#子查询+内连接
	select stu.sid,sname,avgScore from t_student as stu inner join(
		select sid,ROUND(avg(score),2) as avgScore from t_score
		GROUP BY sid
		HAVING avg(score) >=60
	)b
	on stu.sid = b.sid
	
#联表查询
select s.sid,s.sname,ROUND(avg(sc.score),2) as avgScore 
from t_student s,t_score sc
where s.sid = sc.sid
group by s.sid,s.sname
having avgScore>=60;
	
#内连接
	select stu.sid,sname,ROUND(avg(score),2) as avgScore 
	from t_student as stu 
	inner join 
  t_score as sc
	on stu.sid = sc.sid 
	GROUP BY 
	stu.sid
	HAVING avgScore>=60

#4
select stu.sid,stu.sname,tmp.a from t_student stu inner join
	(select sid,ROUND(avg(score),2) as avgScore from t_score group by sid ) tmp 
	on stu.sid = tmp.sid 
	where tmp.avgScore>=60
	
#06)查询在t_score表存在成绩的学生信息
#方法一
select DISTINCT s.* from t_student s,t_score sc where s.sid=sc.sid
#方法二
select DISTINCT stu.* from t_student as stu
inner join
t_score as sc
on stu.sid = sc.sid

#07)查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )
select stu.sid,sname,COUNT(score)
as 选课总数,IF(SUM(score)!=0,SUM(score),NULL) as 总成绩 from t_student as stu
inner join 
t_score as sc 
on stu.sid = sc.sid
GROUP BY stu.sid

#08)查询「李」姓老师的数量

select tid,tname,COUNT(*) as 数量 from t_teacher 
where tname like '李%'
group by tid


select COUNT(*) from t_teacher 
	where tname like'李%'
	GROUP BY tid


#09)查询学过「张五哥」老师授课的同学的信息
SELECT stu.* from t_student stu where sid in
(select sid from t_score where cid  in
(select cid from t_course where tid in
(select tid from t_teacher where tname ='张五哥')))
#10)查询没有学全所有课程的同学的信息

select * from t_student where sid not in(
	select sid from t_score 
	group by sid 
	having count(cid)=3);
	
	select sid,cid from t_score 
	group by sid 
	having count(cid)>=2
	
	
select stu.*,COUNT(*) as course from t_student as stu 
	LEFT JOIN t_score as sc
	on stu.sid = sc.sid
	GROUP BY stu.sid
	HAVING course<3
	
	
	
#11)查询没学过"张五哥"老师讲授的任一门课程的学生姓名
SELECT stu.* from t_student stu where sid not in
(select sid from t_score where cid  in
(select cid from t_course where tid in
(select tid from t_teacher where tname ='张五哥')))

#12)查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
	select stu.sid,stu.sname,tmp.a as 平均成绩 from t_student stu 
	inner join
	(select sid,
	ROUND(avg(score),2) as a,
	sum(case when cid = 1 then (case when score>60 then score else 0 end) else 0 end) c1,
	sum(case when cid = 2 then (case when score>60 then score else 0 end) else 0 end) c2,
	sum(case when cid = 3 then (case when score>60 then score else 0 end) else 0 end) c3
	from t_score 
	group by sid 
	having
	c1=0 and c2=0 or c1=0 and c3=0 or c2=0 and c3=0) tmp
	on stu.sid = tmp.sid 
          SELECT t.sid, COUNT(*) num FROM (SELECT sid, cid FROM t_score WHERE score < 60) t GROUP BY t.sid HAVING num >= 2

	select sid,count(score) from t_score where score < 60  group by sid
#13)检索" 01 "课程分数小于 60,按分数降序排列的学生信息
select stu.*,emp.score from t_student stu inner join(
	select * from t_score where cid = 1 and score < 60) emp
	on stu.sid = emp.sid
	ORDER BY 
	emp.score desc
#14)按平均成绩从高到低(降序)显示所有学生的所有课程的成绩以及平均成绩
SELECT stu.sid,stu.sname, 
	SUM(CASE WHEN sc.cid = 1 THEN sc.score ELSE 0 END) as c1,
	SUM(CASE WHEN sc.cid = 2 THEN sc.score ELSE 0 END) as c2,
	SUM(CASE WHEN sc.cid = 3 THEN sc.score ELSE 0 END) as c3,
	ROUND(AVG(sc.score), 2) as avgScore
FROM t_score as sc 
INNER JOIN t_student as stu ON sc.sid = stu.sid
 GROUP BY stu.sid, stu.sname
 ORDER BY avgScore DESC;

#15)查询各科成绩最高分、最低分和平均分:以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
select 
cid as '课程编号',
count(cid) as'选修人数',
max(score)as'最高分',
min(score)as'最低分',
ROUND(avg(score),2)as'平均分' ,
CONCAT(ROUND((select count(*) from t_score where score>=60 and cid=sc.cid group by cid)/count(cid)*100,2),'%')as'及格率',
CONCAT(ROUND((select count(*) from t_score where score between 70 and 80 and cid =sc.cid group by cid)/count(cid)*100,2),'%')as'中等率',
CONCAT(ROUND((select count(*) from t_score where score between 80 and 90 and cid =sc.cid group by cid)/count(cid)*100,2),'%')as'优良率',
CONCAT(ROUND((select count(*) from t_score where score>=90 and cid =sc.cid group by cid)/count(cid)*100,2),'%')as'优秀率'
from t_score as sc 
group by cid
order by count(cid) desc, cid


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL试题2 的相关文章

  • 如何在不超时的情况下解析大型 CSV 文件?

    我正在尝试解析 50 MB 的 csv 文件 文件本身很好 但我正在尝试解决所涉及的大量超时问题 每个设置上传明智 我可以轻松上传并重新打开文件 但浏览器超时后 我收到 500 内部错误 我的猜测是我可以将文件保存到服务器上 打开它并保留我
  • Java 从 SQL 数组获取 ResultSet 失败

    我试图从数据库中检索电子邮件地址 但没有成功 我的代码如下 Main System out println PortfolioData getEmails 58 So Far Returning null 投资组合数据 public sta
  • 在 MySQL 数据库中存储图像文件或 URL?哪个更好? [复制]

    这个问题在这里已经有答案了 可能的重复 在数据库中存储图像 是还是否 https stackoverflow com questions 3748 storing images in db yea or nay 数据库中的图像与文件系统中的
  • MySQL Workbench 6.0 错误无法获取管理员的管理访问权限?

    我在这里使用 MySQL Workbench 6 0 当我选择服务器状态时 出现此错误 对此 我尝试在Google和StackOverflow上寻找解决方案 e g 这个结果 https stackoverflow com question
  • MySQL用户创建的临时表已满

    我使用内存引擎创建了一个临时表 如下所示 CREATE TEMPORARY TABLE IF NOT EXISTS some text id INT DEFAULT 0 string varchar 400 DEFAULT engine m
  • MySQL InnoDB 查询性能

    我正在尝试优化一个简单的 sql 查询 该查询将多次运行大量数据 这是场景 MySQL 与 InnoDB 表 where 和 join 中使用的所有字段都已索引 表有 FK 我不需要查询的整个缓存 但每个表的缓存是可能的 表有更多的更新 插
  • Preg_replace() 删除除查询结尾之外的所有内容

    首先 为我糟糕的英语感到抱歉 我有这样的疑问 SELECT t1 SELECT COUNT FROM table a t2 WHERE t1 id t2 id c AND t2 status 1 AS aula FROM table c t
  • MySQL 按主键排序

    某些 SQL 服务器允许使用通用语句 例如ORDER BY PRIMARY KEY 我不相信这适用于 MySQL 是否有任何此类解决方法可以允许跨多个表自动选择 或者是否需要查找查询来确定主键 我一直在研究的解决方法包括调用SHOW COL
  • 使用唯一索引删除重复项

    我在两个表字段 A B C D 之间插入 相信我已经在 A B C D 上创建了唯一索引以防止重复 然而我以某种方式简单地对这些做了一个正常的索引 因此插入了重复项 这是2000万条记录的表 如果我将现有索引从普通索引更改为唯一索引 或者只
  • mysql语句中的*星号是什么意思?

    Ex mysql query SELECT FROM members WHERE id id 这意味着选择表中的所有列
  • 社交应用程序的数据库设计和优化注意事项

    通常的情况 我有一个简单的应用程序 允许人们上传照片并关注其他人 因此 每个用户都会有类似 墙 或 活动源 的东西 他或她可以在其中看到他 她的朋友 他或她关注的人 上传的最新照片 大多数功能都很容易实现 然而 当涉及到这个历史活动源时 由
  • 显示表 FULLTEXT 索引列

    我希望运行一个查询 该查询将返回表中全文索引的列列表 该表采用 MyISAM 格式 我将使用 php 来构建查询 理想情况下 我会运行查询 它会返回信息 以便我可以构造一个以逗号分隔的列字符串 例如 名 姓 电子邮箱 这在 MySQL 中可
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教

随机推荐

  • Beyond Compare 3 许可证密钥被撤销

    最近在使用 Beyond Compare 3 时突然出现 许可证密钥被撤销 问题 现象截图以下 自己清除注册表并重新安装后还是出现相同的问题 没办法只能求助于百度 找到解决方法 删除 C Users Administrator AppDat
  • 当我问 ChatGPT 能否推荐一下好用的 API 管理工具时?

    近期围绕 ChatGPT 的话题 真的太多了 我们就知道了 ChatGPT 简单说就是搜索引擎 社交工具 这个解释最简单明了 出于好奇 我也用 ChatGPT 测试了一下 我 在中国 最好的 API 管理工具是什么 ChatGPT 我无法确
  • 剑指 Offer 09. 用两个栈实现队列

    题目链接 09 用两个栈实现队列 思路分析 用两个栈实现队列 首先把1 gt 2然后逐个弹出顶端元素 class CQueue public stack
  • 【华为OD机试真题】单向链表中间节点(寻找链表的中间结点)(C++&java&python)100%通过率 超详细代码注释 代码深度解读

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 寻找链表的中间结点 知识点链表数组 时间限制 1s空间限制 256MB限定语言 不限 题目描
  • 2021美赛成绩查询证书下载

    下载证书地址为 http www comap math com mcm 2021Certs pdf 链接中的6个 替换为自己队的编号 如 http www comap math com mcm 2021Certs 123456 pdf
  • 中央循环管式蒸发器总图

    中央循环管式蒸发器属于自然循环型的蒸发器 它是工业生产中广泛使用且历史悠久的大型蒸发器 至今在化工 轻工 环保等行业中仍被广泛采用 它的加热室由管径为25mm 75mm 长度为1m 2m 长径之比约为20 40 的直立管束组成 在管束中央安
  • HCSR04超声波传感器驱动

    HC SR04是一款使用较为广泛的超声波测距模块 模块图如下 该模块具有四个引脚 分别为VCC GND TRIG ECHO 其中VCC GND为供电脚 TRIG为测距触发引脚 ECHO为测距输入引脚 该模块的驱动模式为 控制口发一个 10U
  • 【WIN】svchost与共享进程服务

    查看注册表中的系统服务文件夹 我们可以发现某些服务的ImagePath显示的是svchost exe的路径 如下图所示 svchost exe 是微软Windows操作系统中的系统文件 微软官方对它的解释是 svchost exe 是从动态
  • SpringBoot 整合 Druid+ 全局事务管理 +Mybatis-Plus+ 代码生成器

    SpringBoot 整合 Druid 全局事务管理 Mybatis Plus 代码生成器 在 springboot 开发当中 Druid 全局事务管理 代码生成器都是非常实用的 特此记录下整合的过程 整合 Druid 连接池 spring
  • js逆向技巧

    一 总结 搜索 全局搜索 代码内搜索 debug 常规debug XHR debug 行为debug 查看请求调用的堆栈 执行堆内存中的函数 修改堆栈中的参数值 写js代码 打印windows对象的值 勾子 cookie钩子 请求钩子 he
  • 存在的意义

    到目前为止出现过的所有备选答案 1 成功 成为人上人 2 好吃的 好听的 好看的 3 明白些道理 遇见有趣的事 4 像吃蛋糕和甜甜圈一样 在于吃的过程 5 纯粹为了快感而嗑药 6 为了我爱的人和爱我的人 7 为社会和他人作贡献 8 为神服务
  • FreeRTOS学习笔记—任务挂起和恢复

    文章目录 一 任务挂起和恢复API函数 1 1 vTaskSuspend 函数 1 2 vTaskResume 函数 1 3 xTaskResumeFromISR 函数 二 任务挂起和恢复 2 1 任务1挂起解挂任务2 2 2 中断中解挂任
  • 绘制ER图(数据库关系图)

    http www texample net tikz examples entity relationship diagram https www assembla com wiki show tikz er2 usepackage tik
  • Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService ‘applicationTaskExecutor‘

    问题 Spring Boot 报错ThreadPoolTaskExecutor Shutting down ExecutorService applicationTaskExecutor 原因 idea没有运行项目 运行了测试类 解决 运行
  • Angular 11常用api

    ngFor渲染每个商品 div div 属性绑定 div h3 a a h3 div 插值 div h3 a product name a h3 div
  • 【Android】使用native开发遇到的bug---java.lang.UnsatisfiedLinkError: No implementation found for

    今晚终于解决了一个困扰我三天的bug 就是这个java lang UnsatisfiedLinkError No implementation found for 感觉人生达到了巅峰 特此记录下 前几天老师给我一个项目 让我实现一个将视频下
  • 使用Xshell通过隧道代理进行SSH跳转访问

    文章来源 http www aloneray com 886 html 可能需要vpn翻墙才能访问 链接流程 本地服务器Local gt 中转服务器Jump gt 目标服务器Destination 简单来说 就是不直接访问你的目标服务器 而
  • weblogic作为文件浏览服务器,weblogic配置文件服务器

    weblogic配置文件服务器 内容精选 换一换 该任务指导用户使用Loader将数据从Hive导出到SFTP服务器 创建或获取该任务中创建Loader作业的业务用户和密码 确保用户已授权访问作业中指定的Hive表的权限 获取SFTP服务器
  • Guava库API使用部分总结

    Guava库 1 Guava是对Java API的补充 对Java开发中常用功能进行更优雅的实现 使得编码更加轻松 代码容易理解 Guava使用了多种设计模式 同时经过了很多测试 得到了越来越多开发团队的青睐 Java最新版本的API采纳了
  • MySQL试题2

    二 题目 01 查询 1 课程比 2 课程成绩高的学生的信息及课程分数 方法一 select s t1 score t2 score from select sid score from t score where cid 1 t1 sel