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

MySQL连续案例续集

01)查询学过「张三」老师授课的同学的信息
SELECT
s.*,
c.cname,
t.tname,
sc.score
FROM
t_mysql_teacher t,
t_mysql_course c,
t_mysql_student s,
t_mysql_score sc
WHERE
t.tid = c.tid
AND c.cid = sc.cid
AND sc.sid = s.sid
AND t.tname = ‘张三’
在这里插入图片描述

02)查询没有学全所有课程的同学的信息
‘SELECT
s.sid,
s.sname,
count( sc.score ) n
FROM
t_mysql_student s
LEFT JOIN t_mysql_score sc ON s.sid = sc.sid
GROUP BY
s.sid,
s.sname
HAVING
n < (
SELECT
count( 1 )
FROM
t_mysql_course)
在这里插入图片描述

03)查询没学过"张三"老师讲授的任一门课程的学生姓名
SELECT
s.sid,
s.sname
FROM
t_mysql_score sc,
t_mysql_student s
WHERE
s.sid = sc.sid
AND sc.cid NOT IN ( SELECT cid FROM t_mysql_course c, t_mysql_teacher t WHERE c.tid = t.tid AND t.tname = ‘张三’ )
GROUP BY
s.sid,
s.sname
在这里插入图片描述

04)查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
SELECT
s.sid,
s.sname,
avg( sc.score ) n 

FROM
t_mysql_student s,
t_mysql_score sc
WHERE
s.sid = sc.sid
AND sc.score < 60
GROUP BY
s.sid,
s.sname
在这里插入图片描述

05)检索" 01 "课程分数小于 60,按分数降序排列的学生信息

SELECT
s.*,
sc.score
FROM
t_mysql_student s,
t_mysql_score sc
WHERE
s.sid = sc.sid
AND sc.cid = ‘01’
AND sc.score < 60
ORDER BY
sc.score DESC
在这里插入图片描述

06)按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
SELECT
s.sid,
s.sname,
sum(if(sc.cid = ‘01’,sc.score,0)) 语文,
sum(if(sc.cid = ‘02’,sc.score,0)) 数学,
sum(if(sc.cid = ‘03’,sc.score,0)) 英语,
ROUND(avg(sc.score),2) 平均分
FROM
t_mysql_score sc
RIGHT JOIN t_mysql_student s ON sc.sid = s.sid
GROUP BY
s.sid,
s.sname
在这里插入图片描述

07)查询各科成绩最高分、最低分和平均分:

以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
select
c.cid,
c.cname,
count(sc.sid) 人数,
max(sc.score) 最高分,
min(sc.score) 最低分,
ROUND(avg(sc.score),2) 平均分,
CONCAT(ROUND(sum(if(sc.score>=60,1,0))/(select count(1) from t_mysql_student)
*100,2),‘%’) 及格率,
CONCAT(ROUND(sum(if(sc.score>=70 and sc.score<80,1,0))/(select count(1) from t_mysql_student)
*100,2),‘%’) 中等率,
CONCAT(ROUND(sum(if(sc.score>=80 and sc.score<90,1,0))/(select count(1) from t_mysql_student)
*100,2),‘%’) 优良率,
CONCAT(ROUND(sum(if(sc.score>=90,1,0))/(select count(1) from t_mysql_student)
*100,2),‘%’) 优秀率
from
t_mysql_score sc
left join t_mysql_course c
on sc.cid = c.cid
GROUP BY
c.cid,c.cname
在这里插入图片描述

相关文章:

  • Arduino开发实例-AS608光学指纹传感器驱动
  • ElasticSearch概述+SpringBoot 集成 ES
  • flutter使用get库管理路由,并设页面跳转动画和常见动画
  • 了解JavaScript 加密、混淆和生成签名
  • 逼格满满,推荐一个高效测试用例工具:XMind2TestCase !
  • 详解FreeRTOS:内存管理(高级篇—8)
  • 设计模式—— 单例设计模式
  • leetcode 动态规划(单词拆分)
  • 面向对象的三大特性
  • Kali安装Xrdp结合内网穿透实现无公网ip远程访问系统桌面
  • 单例模式的八种写法、单例和并发的关系
  • 打印日期c++
  • Java获取文件的后缀名称
  • netcore html to pdf
  • 代码随想录算法训练营第32天|122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II
  • ES6指北【2】—— 箭头函数
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • create-react-app做的留言板
  • CSS 专业技巧
  • docker容器内的网络抓包
  • Hibernate最全面试题
  • java中的hashCode
  • js写一个简单的选项卡
  • laravel 用artisan创建自己的模板
  • leetcode46 Permutation 排列组合
  • python_bomb----数据类型总结
  • TCP拥塞控制
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 你真的知道 == 和 equals 的区别吗?
  • 如何使用 JavaScript 解析 URL
  • 使用SAX解析XML
  • 学习JavaScript数据结构与算法 — 树
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 正则表达式小结
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Java数据解析之JSON
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • #100天计划# 2013年9月29日
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (2022 CVPR) Unbiased Teacher v2
  • (23)Linux的软硬连接
  • (3)nginx 配置(nginx.conf)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Matlab)使用竞争神经网络实现数据聚类
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .bat批处理(一):@echo off
  • .htaccess配置常用技巧
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net多线程总结
  • .NET上SQLite的连接
  • .Net组件程序设计之线程、并发管理(一)
  • /bin/bash^M: bad interpreter: No such file ordirectory