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

sql-50练习题11-15

sql-50练习题11-15

  • 前言
  • 数据库表结构介绍
    • 学生表
    • 课程表
    • 成绩表
    • 教师表
  • 1-1 查询没有学全所有课程的同学的信息
  • 1-2 查询至少有一门课与学号为'01'的同学所学相同的同学的信息
  • 1-3 查询和'1'号的同学学习的课程完全相同的其他同学的信息
  • 1-4 查询没学过'张三'老师讲授的任一门课程的学生姓名
  • 1-5 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

前言

sql真的非常灵活,一个题目可能有很多很多种解法,我记录的只是我自己的一个解题思路,如果大家有更好的不同解法欢迎在评论区一起探讨
ps:有些题可能解法会重复,比如求大于,我们下一个题可能是求小于,大家如果第一遍没有做出来,看了我写的之后有了思路,可以试一下反面的解法。

数据库表结构介绍

学生表

在这里插入图片描述

课程表

在这里插入图片描述

成绩表

在这里插入图片描述

教师表

在这里插入图片描述

1-1 查询没有学全所有课程的同学的信息

需要的表结构:course,score,student
利用score中的成绩去裁剪表,score中有些同学只有两科成绩或者一科成绩这种,而学全所有课程的同学成绩有三科

SELECTb.*, count(a.s_id)
FROMscore a
RIGHT JOIN student b ON a.s_id = b.s_id
GROUP BYa.s_id
HAVINGcount(a.s_id) < (SELECTcount(c_id)FROMcourse)
ORDER BYb.s_id ASC;

结果如下:
在这里插入图片描述

1-2 查询至少有一门课与学号为’01’的同学所学相同的同学的信息

需要用到的表为:score和student

SELECT DISTINCTb.*
FROMscore a,student b
WHEREa.s_id = b.s_id
AND a.c_id IN (SELECTc.c_idFROMscore cWHEREc.s_id = '1'
)

结果如下:
在这里插入图片描述

1-3 查询和’1’号的同学学习的课程完全相同的其他同学的信息

select s2.s_id,student.s_name
from score as s1 
join score as s2 
on s1.c_id = s2.c_id
join student on student.s_id = s2.s_id
and s1.s_id = '01'
and s2.s_id != '01'
group by s2.s_id,student.s_id
having count(s2.c_id) = (select count(*) from score where s_id = '01')

结果如下:
在这里插入图片描述

1-4 查询没学过’张三’老师讲授的任一门课程的学生姓名

select a.s_name from student a where a.s_id not in (select s_id from score where c_id = (select c_id from course where t_id =(select t_id from teacher where t_name = '张三')) group by s_id);

在这里插入图片描述

1-5 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

SELECTb.*, avg(a.s_score) agescore
FROMscore a,student b
WHEREa.s_id = b.s_id
GROUP BYa.s_id
HAVINGsum(CASEWHEN a.s_score >= 60 THEN0ELSE1END) >= 2

结果如下:
在这里插入图片描述

相关文章:

  • 【深度学习】pytorch——实现CIFAR-10数据集的分类
  • 排序算法(1)
  • 第21期 | GPTSecurity周报
  • 【QT】鼠标常用事件
  • C++标准模板(STL)- 类型支持 (类型属性,is_volatile,is_trivial,is_const)
  • 【跟小嘉学 Rust 编程】三十四、Rust的Web开发框架之一: Actix-Web的进阶
  • C#反射的学习,反射的一些注意事项,反射的一些使用代码的实例
  • VSCode 如何设置背景图片
  • Linux启动故障排错
  • 使用脚本整合指定文件/文件夹,执行定制化 ESLint 命令
  • LiveMeida视频接入网关
  • [JavaWeb]——获取请求参数的方式(全面!!!)
  • 基于tpshop开发多商户源码支持手机端+商家+门店 +分销+淘宝数据导入+APP+可视化编辑
  • Centos7下生成https自签名证书
  • 【Linux】安装使用Nginx负载均衡,并且部署前端项目
  • Angular 响应式表单 基础例子
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • java中具有继承关系的类及其对象初始化顺序
  • Node 版本管理
  • Python学习之路16-使用API
  • ReactNative开发常用的三方模块
  • SwizzleMethod 黑魔法
  • 从0到1:PostCSS 插件开发最佳实践
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 将 Measurements 和 Units 应用到物理学
  • 前端技术周刊 2019-01-14:客户端存储
  • 1.Ext JS 建立web开发工程
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​如何在iOS手机上查看应用日志
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • $refs 、$nextTic、动态组件、name的使用
  • (1)bark-ml
  • (C#)一个最简单的链表类
  • (k8s中)docker netty OOM问题记录
  • (二十三)Flask之高频面试点
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (三分钟)速览传统边缘检测算子
  • (学习日记)2024.01.19
  • (转)大型网站架构演变和知识体系
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • ..回顾17,展望18
  • .form文件_一篇文章学会文件上传
  • .htaccess 强制https 单独排除某个目录
  • .Mobi域名介绍
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 中创建支持集合初始化器的类型
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET正则基础之——正则委托
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @Bean, @Component, @Configuration简析