SQL练习题:2.4

建表

# 学生表
create table t_student
(stu_id   varchar(10),stu_name varchar(10),stu_age  datetime,stu_sex  varchar(10)
);# 课程表
create table t_t_course
(c_id    varchar(10),c_name  varchar(10),c_teaid varchar(10)
);# 教师表
create table t_t_teacher
(tea_id   varchar(10),tea_name varchar(10)
);# 成绩表
create table t_t_score
(s_stuid varchar(10),s_cid   varchar(10),s_score decimal(18, 1)
);-- 向t_student表插入数据
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('01', '赵雷', '1990-01-01', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('02', '钱电', '1990-12-21', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('03', '孙风', '1990-12-20', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('04', '李云', '1990-12-06', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('05', '周梅', '1991-12-01', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('06', '吴兰', '1992-01-01', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('07', '郑竹', '1989-01-01', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('09', '张三', '2017-12-20', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('10', '李四', '2017-12-25', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('11', '李四', '2012-06-06', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('12', '赵六', '2013-06-13', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('13', '孙七', '2014-06-01', '女');-- 向t_t_course表插入数据
insert into t_t_course(c_id, c_name, c_teaid)
values ('01', '语文', '02');
insert into t_course(c_id, c_name, c_teaid)
values ('02', '数学', '01');
insert into t_course(c_id, c_name, c_teaid)
values ('03', '英语', '03');-- 向t_t_teacher表插入数据
insert into t_teacher(tea_id, tea_name)
values ('01', '张三');
insert into t_teacher(tea_id, tea_name)
values ('02', '李四');
insert into t_teacher(tea_id, tea_name)
values ('03', '王五');-- 向t_t_score表插入数据
insert into t_score(s_stuid, s_cid, s_score)
values ('01', '01', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('01', '02', 90);
insert into t_score(s_stuid, s_cid, s_score)
values ('01', '03', 99);
insert into t_score(s_stuid, s_cid, s_score)
values ('02', '01', 70);
insert into t_score(s_stuid, s_cid, s_score)
values ('02', '02', 60);
insert into t_score(s_stuid, s_cid, s_score)
values ('02', '03', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('03', '01', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('03', '02', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('03', '03', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('04', '01', 50);
insert into t_score(s_stuid, s_cid, s_score)
values ('04', '02', 30);
insert into t_score(s_stuid, s_cid, s_score)
values ('04', '03', 20);
insert into t_score(s_stuid, s_cid, s_score)
values ('05', '01', 76);
insert into t_score(s_stuid, s_cid, s_score)
values ('05', '02', 87);
insert into t_score(s_stuid, s_cid, s_score)
values ('06', '01', 31);
insert into t_score(s_stuid, s_cid, s_score)
values ('06', '03', 34);
insert into t_score(s_stuid, s_cid, s_score)
values ('07', '02', 89);
insert into t_score(s_stuid, s_cid, s_score)
values ('07', '03', 98);
练习
#**25. 查询和学号"01"同学学习的课程完全相同的其他同学的信息**
select t.stu_id, count(*)
from t_student tinner join t_score sc on t.stu_id = sc.s_stuidinner join t_course co on sc.s_cid = co.c_id
where co.c_id in (select co.c_idfrom t_student t1inner join t_score sc1 on t1.stu_id = sc1.s_stuidinner join t_course co1 on sc1.s_cid = co1.c_idwhere t1.stu_id = 01)
group by t.stu_id
having count(*) = (select count(*)from t_student t1inner join t_score sc1 on t1.stu_id = sc1.s_stuidinner join t_course co1 on sc1.s_cid = co1.c_idwhere t1.stu_id = 01);#26. 查询没学过"张三"老师讲授的任一门课程的学生姓名
select s1.stu_name, s1.stu_id
from t_student s1
where s1.stu_id not in (select s.stu_idfrom t_student sinner join t_score sc on s.stu_id = sc.s_stuidinner join t_course co on sc.s_cid = co.c_idwhere co.c_id in (select co1.c_idfrom t_teacher teinner join t_course co1 on te.tea_id = co1.c_teaidwhere te.tea_name = '张三'));#**27. 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩** (成绩保留两位小数)
select s.stu_id, s.stu_name, AVG(sc.s_score)
from t_student sinner join t_score sc on s.stu_id = sc.s_stuid
where sc.s_score < 60
group by s.stu_id, s.stu_name
having count(*) >= 2;#**28. 检索"01"课程分数小于 60,按分数降序排列的学生信息**
select *
from t_student sinner join t_score sc on s.stu_id = sc.s_stuidinner join t_course co on sc.s_cid = co.c_id
where sc.s_score < 60and co.c_id = 01
order by sc.s_score DESC;#**29. 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩** (平均成绩保留两位小数)
select s.*, sc.s_score, avg.a
from t_student sinner join t_score sc on s.stu_id = sc.s_stuidinner join (Select Avg(sc1.s_score) as 'a', sc1.s_stuid from t_score sc1 group by sc1.s_stuid) avgon s.stu_id = avg.s_stuid
order by a DESC;#**30. 查询各科成绩最高分、最低分、平均分、选修人数、及格率** (及格率以百分比格式显示)
select MAX(sc.s_score),MIN(sc.s_score),AVG(sc.s_score),COUNT(sc.s_score),concat(FORMAT(((select Count(*) from t_score sc1 where sc1.s_cid = sc.s_cid and sc1.s_score >= 60) /(select Count(*) from t_score sc2 where sc2.s_cid = sc.s_cid)) * 100, 2), '%')
from t_score scinner join t_student s on s.stu_id = sc.s_stuid
group by sc.s_cid;#31. 按各科成绩进行排序,并显示排名, 成绩重复时不保留名次空缺
select s.*, sc.s_cid, row_number() over (PARTITION BY sc.s_cid ORDER BY sc.s_score)
from t_student sinner join t_score sc on s.stu_id = sc.s_stuid;#**32. 按各科成绩进行排序,并显示排名,成绩重复时保留名次空缺**
select s.*, sc.s_cid, RANK() over (PARTITION BY sc.s_cid ORDER BY sc.s_score)
from t_student sinner join t_score sc on s.stu_id = sc.s_stuid;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光速入门python的OpenCV

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理python的OpenCV模块的关键知识点 争取用最短的时间入门OpenCV 并且做到笔记功能直接复制使用 OpenCV简介 不浪费时间的介绍: 就是类似于ps操作图片。 至于为什么不直接用ps&#xff0c;因为只有程序能…

【找出满足差值条件的下标 I】python

目录 暴力题解 优化&#xff1a;滑动窗口维护大小值 暴力题解 class Solution:def findIndices(self, nums: List[int], indexDifference: int, valueDifference: int) -> List[int]:nlen(nums)for i in range(n):for j in range(n-1,-1,-1):if abs(i-j)>indexDiffere…

海康威视NVR通过ehome协议接入视频监控平台,视频浏览显示3011超时错误的问题解决,即:The request timeout! 【3011】

目录 一、问题描述 二、问题分析 2.1 初步分析 2.2 查看日志 2.3 问题验证 1、查看防火墙 2、查看安全组 3、问题原因 三、问题解决 3.1 防火墙开放相关端口 3.2 安全组增加规则 3.3 测试 1、TCP端口能够联通的情况 2、TCP端口不能够联通的情况 四、验证 五、云…

「51媒体」如何与媒体建立良好关系?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 与媒体建立良好关系对于企业或个人来说都是一项重要的公关活动。 了解媒体&#xff1a;研究媒体和记者的兴趣&#xff0c;提供相关且有价值的信息。 建立联系&#xff1a;通过专业的方式…

牛客NC324 下一个更大的数(三)【中等 双指针 Java/Go/PHP/C++】参考lintcode 52 · 下一个排列

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/475da0d4e37a481bacf9a09b5a059199 思路 第一步&#xff1a;获取数字上每一个数&#xff0c;组成数组arr 第二步&#xff1a;利用“下一个排列” 问题解题方法来继续作答&#xff0c;步骤&#xff1a;利用lintc…

C++进阶之路:何为拷贝构造函数,深入理解浅拷贝与深拷贝(类与对象_中篇)

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

PostgreSQL基础(三):PostgreSQL的基础操作

文章目录 PostgreSQL的基础操作 一、用户操作 二、权限操作 三、操作任务

DRM驱动(五)之drm_atomic_state

上节讲到《DRM驱动&#xff08;四&#xff09;之ADD_FB》调用drmModeAddFB创建drm_framebuffer。然后通过 drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &map); vaddr mmap(0, create.size, PROT_READ | PROT_WRITE,MAP_SHARED, fd, map.offset); 将物理地址map到用户空间后…

Python中list遍历的几种方式之没有好与不好,只有合适不合适

Python中list遍历的几种方式 引言 Python是一种动态、解释型的高级编程语言&#xff0c;以其简洁、易读的语法而广受欢迎。在Python中&#xff0c;list是一种非常重要的数据结构&#xff0c;它允许存储一系列的元素&#xff0c;这些元素可以是任何类型。遍历list是处理数据的…

nginx的Connection refused

问题描述 nginx的错误日志中突然出现大量的的Connection refused问题&#xff0c;日志如下&#xff1a; 2020/03/19 09:52:53 [error] 20117#20117: *7403411764 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server:…

解决CLion调试时无法显示变量值的问题

1 问题描述 使用CLion的时候&#xff0c;调试时无法显示变量的值&#xff0c;例如&#xff1a; 图来自StackOverflow。 2 解决办法 可以尝试切换调试器解决&#xff0c;在Linux下&#xff0c;CLion支持GDB和LLDB&#xff0c;如果GDB不行&#xff0c;可以切换到LLDB。 切换方…

医院信息化IT监控一体化运维实践

作者: 晓风 在医疗信息化日益发展的今天&#xff0c;医院数据中心的运维工作显得尤为重要。为了确保医疗系统的稳定运行&#xff0c;保障患者数据的安全与完整&#xff0c;我院在信息化IT监控一体化运维方面进行了深入的探索和实践。 一、背景与挑战 我院的机房设备规模已有50…

主动归档存储的策略研讨

在媒体与娱乐&#xff08;M&E&#xff09;行业中&#xff0c;主动存档策略对于应对内容的持续需求增长、控制存储成本膨胀以及实现档案内容的货币化至关重要。以下是对此策略的深入分析&#xff1a; ### 持续的内容需求带来的挑战 M&E企业面临着巨大的挑战&#xff1…

【Spring】SSM整合_入门代码实现

1. Maven依赖 在pom.xml中添加SSM框架的依赖 <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.x</version> </dependency>…

软件杯 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 &#x1f525; 优…

为什么单片机不能直接驱动继电器和电磁阀

文章是瑞生网转载&#xff0c;PDF格式文章下载&#xff1a; 为什么单片机不能直接驱动继电器和电磁阀.pdf: https://url83.ctfile.com/f/45573183-1247189072-10b6d1?p7526 (访问密码: 7526)

java-数组内存分配

在 Java 中&#xff0c;数组是一种基本数据结构&#xff0c;用于存储一系列相同类型的数据。在内存中&#xff0c;数组分配是一块连续的内存空间&#xff0c;用于存储数组中的所有元素。本篇文章将详细解释 Java 中数组的内存分配&#xff0c;包括数组的声明、创建、内存模型以…

memcpy的使⽤和模拟实现

目录 一&#xff1a;memcpy的使⽤ memcpy的使⽤的代码 二&#xff1a;memcpy函数的模拟实现: memcpy和strcpy的区别 用途&#xff1a; 安全性&#xff1a; 数据类型&#xff1a; 性能&#xff1a; 在字符串中的用法示例&#xff1a; memcpy: strcpy 一&#xff1a;…

Ajax面试题精选及参考答案(3万字长文)

目录 什么是Ajax,它的核心原理是什么? Ajax应用程序的优势有哪些? Ajax最大的特点是什么?

Science 基于尖峰时序编码的模拟神经触觉系统,可实现动态对象分类

快速处理和有效利用手与物体交互过程中产生的动态触觉信号&#xff08;例如触摸和抓握&#xff09;对于触觉探索和灵巧的物体操作至关重要。将电子皮肤&#xff08;e-skins&#xff09;推进到模仿自然触觉的水平&#xff0c;是恢复截肢者和瘫痪患者丧失的功能的可行解决方案&am…