sql练习题3

news2024/12/23 23:00:16

学生表练习

1、查询所有的课程的名称以及对应的任课老师姓名

select course.cname,teacher.tname from course inner join teacher on course.teacher_id = teacher.tid;

在这里插入图片描述
2、查询学生表中男女生各有多少人

select gender as '性别',count(gender) as '个数'  from student group by gender;

在这里插入图片描述
3、查询物理成绩等于100的学生的姓名

select sname as '物理课程满分100' from student where sid in (select student_id from score where num = 100 and course_id in (select cid from course where cname = '物理'));

在这里插入图片描述
4、查询平均成绩大于八十分的同学的姓名和平均成绩

select sname as '学生姓名',new_num as '平均成绩'  from student inner join (select distinct student_id,avg(num) as new_num from score group by student_id) as B on student.sid = B.student_id;

在这里插入图片描述
5、查询所有学生的学号,姓名,选课数,总成绩

mysql> select sid as '学生学号',sname as '学生姓名',a.course_num as '学生选课数',a.num_num as '学生总成绩' from student left join (select student_id,count(course_id) course_num,sum(num) num_num from score group by student_id )as a on student.sid=a.student_id;

在这里插入图片描述
6、 查询姓李老师的个数

select count(tname) as '姓李老师的个数' from teacher where tname LIKE '李%';

在这里插入图片描述
7、 查询没有报李平老师课的学生姓名

 select sname as '未报刘老师课程的学生' from student where sid not in (select distinct student_id from score where course_id in (select cid from course where teacher_id in (select tid from teacher where tname='李平老师'))); 

在这里插入图片描述
8、 查询物理课程比生物课程高的学生的学号

select student_id as '学生生物id',num as'生物成绩',course_id  as'生物' from score where course_id in (select cid from course where cname = '生物') ;

在这里插入图片描述
9、 查询没有同时选修物理课程和体育课程的学生姓名

select sname as '学生名称' from student where sid in (select distinct student_id from score where course_id in  (select cid from course where cname='物理' or cname='体育') group by student_id having count(student_id) =1);

在这里插入图片描述
10、查询挂科超过两门(包括两门)的学生姓名和班级

select F.sname, caption from class inner join (select class_id,sname from student where sid in (select student_id from score where num < 60 group by student_id having count(num) >=2)) as F on F.class_id = class.cid;

在这里插入图片描述
11、查询选修了所有课程的学生姓名

mysql> SELECT student.sname FROM student WHERE sid IN ( SELECT student_id FROM score GROUP BY student_id HAVING COUNT( course_id ) = ( SELECT count( cid ) FROM course ) );

在这里插入图片描述
12、查询李平老师教的课程的所有成绩记录

select student_id as '学生姓名',num as '学生成绩' from score where course_id in (select cid from course where teacher_id in (select tid from teacher where tname = '李平老师'));

在这里插入图片描述
13、查询全部学生都选修了的课程号和课程名

select course_id as '课程名称',count(course_id) as '选修次数' from score group by course_id having course_id in (select cid from course);

14、查询每门课程被选修的次数

select course_id as '课程名称',count(course_id) as '选修次数' from score group by course_id having course_id in (select cid from course);

在这里插入图片描述
15、查询之选修了一门课程的学生姓名和学号

select student.sid as '学生学号',sname as '学生姓名' from student inner join (select student_id from score group by student_id having count(course_id) =1) as S on S.student_id = student.sid;

在这里插入图片描述
16、查询所有学生考出的成绩并按从高到低排序(成绩去重)

mysql> SELECT
    -> *
    -> FROM
    -> score
    -> ORDER BY
    -> num DESC;

在这里插入图片描述
17、查询平均成绩大于85的学生姓名和平均成绩

select sname as '学生姓名',new_num as '平均成绩'  from student inner join (select distinct student_id,avg(num) as new_num from score group by student_id) as B on student.sid = B.student_id;

在这里插入图片描述
18、查询生物成绩不及格的学生姓名和对应生物分数

select sname as '学生姓名',S.num as '生物分数' from student inner join (select student_id,num from score where num < 60 and course_id = (select cid from course where cname='生物')) as S on S.student_id = student.sid;

在这里插入图片描述
19、查询在所有选修了李平老师课程的学生中,这些课程(李平老师的课程,不是所有课程)平均成绩最高的学生姓名

select student_id,avg(num) from score group by student_id having student_id in (select distinct student_id from score inner join (select cid from course where teacher_id in (select tid from teacher where tname = '李平老师')) as C on C.cid = score.course_id) order by avg(num) desc limit 1;

在这里插入图片描述

单表多表查询练习题

练习1:SELECT语句的基本使用
1、 查询每个雇员的所有记录;

mysql> SELECT *from employee;

在这里插入图片描述
2、 查询前5个会员的所有记录;

SELECT *from employee LIMIT 0,5;

3、查询每个雇员的地址和电话;

SELECT addr,tel from employee;

在这里插入图片描述
4、 查询num为001的雇员地址和电话;

mysql> SELECT addr,tel FROM employee WHERE num=001;

在这里插入图片描述
5、查询表Employee表中女雇员的地址和电话,使用AS子句将结果列中各列的标题分别指定为地址、电话;

mysql> SELECT addr AS 地址,tel AS 电话 FROM employee WHERE sex="女";

在这里插入图片描述
6、 计算每个雇员的实际收入;

mysql> SELECT num,income-outcome from salay;

在这里插入图片描述
7、找出所有性王的雇员的部门号(部门号不能重复显示);

mysql> SELECT  DISTINCT depno  from employee WHERE name LIKE"王%";

在这里插入图片描述
8.、找出所有收入在2000-3000元之间的雇员编号

SELECT num FROM salay WHERE income BETWEEN 2000 AND 3000;

在这里插入图片描述
练习2:子查询的使用(答案可以不唯一)
1、查找在财务部工作的雇员情况;

mysql> select *from employee WHERE depno=(SELECT depno FROM department WHERE depName="财务部");

在这里插入图片描述
2、 查找在财务部且年龄不低于研发部任一个雇员年龄的雇员的姓名;

mysql> SELECT name from employee WHERE depno=
    -> (SELECT depno from department WHERE depName="财务部") AND birth<ALL
    -> (SELECT birth FROM employee WHERE depno=(SELECT depno FROM department WHERE depName="研发部"));

在这里插入图片描述
3、查找比所有财务部雇员收入都高的雇员的姓名;

mysql> SELECT DISTINCT income,name from employee,salay,department WHERE employee.num=
    -> salay.num AND income>all
    -> (SELECT income FROM employee,salay,department WHERE employee.num=salay.num AND employee.depno=department.depno and depName="财务部");

在这里插入图片描述
练习3:连接查询的使用
1、 查找每个雇员的情况及薪水情况;

mysql> SELECT e.*, s.* FROM employee e
    -> INNER JOIN salay s
    -> ON e.Num=s.Num;

在这里插入图片描述
2、查找财务部收入在2200元以上的雇员姓名及其薪水详细情况;

SELECT name,salay.* FROM employee,salay,department WHERE employee.num=salay.num AND employee.depno=department.depno AND depName="财务部"AND income>2200;

在这里插入图片描述
练习4:数据汇总
1、求财务部雇员的平均实际收入;

mysql> SELECT avg(income-outcome) FROM employee,salay,department WHERE
    -> employee.num=salay.num AND employee.depno=department.depno and depName="财务部";

在这里插入图片描述
2、 求财务部雇员的总人数;

mysql> SELECT count(*) FROM employee,salay,department WHERE employee.num=salay.num AND employee.depno=department.depno and depName="财务部";

在这里插入图片描述
练习5:GROUP BY 、ORDER BY 子句的使用
1、 求各部门的雇员数(要求显示,部门号、部门名称和部门雇员数);

mysql> SELECT e.depno AS 部门号,d.depname AS 部门名称,count(*)AS 部门雇员数 FROM employee e INNER JOIN department d on e.depno=d.depno  GROUP BY  d.depno ;

在这里插入图片描述
2、求部门的平均薪水大于2500的部门信息(要求显示,部门号、部门名称和平均工资)

mysql> SELECT e.depno AS 部门号,d.depname AS 部门名称,avg(income)AS 部门平均工资 FROM employee e,department d,salay s  GROUP BY  d.depno,e.num ;

在这里插入图片描述

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

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

相关文章

Java面向对象:封装、JavaBean和综合案例

目录封装基本概念总结如何更好的封装总结JavaBean补充知识&#xff1a;成员变量&#xff0c;局部变量区别综合案例封装 面向对象的三大特征:封装&#xff0c;继承&#xff0c;多态。 封装:告诉我们&#xff0c;如何正确设计对象的属性和方法。 封装的原则:对象代表什么&#x…

Java学习笔记 --- JDBC(2)

一、事务 1、JDBC程序中当一个Connection对象创建时&#xff0c;默认情况下是自动提交事务&#xff1a;每次执行一个SQL语句时&#xff0c;如果执行成功&#xff0c;就会向数据库自动提交&#xff0c;而不能回滚。 2、JDBC程序中为了让多个SQL语句作为一个整体执行&#xff0…

人工智能算法--启发式搜索与估值函数

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; (*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &a…

Linux--阻塞信号--信号集--0104 05

1. 阻塞信号 1.1 信号其他相关常见概念 实际执行信号的处理过程称为信号递达。信号从产生到递达之间的状态称为信号未决。进程可以选择阻塞&#xff08;Block&#xff09;某个信号。被阻塞的信号保持在未决状态&#xff0c;直至进程解除对该信号的阻塞&#xff0c;才执行递达…

Qt—事件处理

Qt中&#xff0c;事件作为一个对象&#xff0c;继承自QEvent类&#xff0c;常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。Qt中&#xff0c;任何QObject子类示例都可以接收和处理事件。实际编程中通常实现部件的paintEvent&#xff08;&#xff0…

百度语音+自动驾驶感知+深度学习平台技术解析

HIEV快讯&#xff08;文/戒僧&#xff09;本文将解析三部分技术内容&#xff0c;出自百度2023 Create大会-技术开放日&#xff1a; •百度如何用“手机全双工语音交互”改善使用导航应用的体验 •如何用“上帝视角”BEV技术提升汽车的自动驾驶能力 •如何用百度自研的深度学习平…

k8s常见错误

master节点初始化失败 出现这个原因是因为&#xff0c;我们之前有执行过初始化的命令&#xff0c;然后初始化的时候就会产生一些文件&#xff0c;和占用端口&#xff0c;然后当你再次初始化的时候&#xff0c;就会提示你有些文件已经存在和端口正在被使用&#xff0c;所以我们…

年末高压叠加“阳”后虚弱,双重压力下的测试者们该何去何从

在2022年的最后一个月&#xff0c;国家放开管控&#xff0c;发布“新十条”&#xff0c;不查核酸&#xff0c;不看健康码&#xff0c;以前闻之色变的“小阳人”&#xff0c;十几天后&#xff0c;遍地皆是。 相信大家对这段时间的经历难以忘怀&#xff0c;在刚放开的时候&#x…

【论文阅读笔记】EndoL2H: Deep Super-Resolution for Capsule Endoscopy

论文地址&#xff1a;https://arxiv.org/abs/2002.05459 代码地址&#xff1a;https://github.com/CapsuleEndoscope/EndoL2H 论文小结 顾名思义&#xff0c;本文是胶囊内窥镜领域的超分算法。本文的网络结构是条件对抗网络 空间attention块的方式&#xff0c;实现8倍、10倍和…

不要再被骗了,解密短视频里追剧看电影都能赚钱的坑。

不要再被骗了,解密短视频里追剧看电影都能赚钱的坑。 最近刷短视频刷到了好多抖音追剧看电影每天收几百&#xff0c;还有截图&#xff0c;还有怎么实操的视频。 关键不是刷到一个两个&#xff0c;是几十个还有越来越多的趋势。 都说新入门实操&#xff0c;终于忍不住&#x…

LeetCode刷题Day05——链表(链表元素删除、相交、环形链表)

文章目录一、删除链表中的倒数第n个节点二、链表相交三、环形链表一、删除链表中的倒数第n个节点 题目链接&#xff1a;19.删除链表中的倒数第n个节点 /*** <pre>* 最简单的方法显然是先遍历一遍链表&#xff0c;知道长度后重新遍历一次就可以找到指定节点了&#xff0…

WebDAV之葫芦儿·派盘+DAVx⁵

DAVx⁵ 支持WebDAV方式连接葫芦儿派盘。 支持移动设备远程同步,是不是比NAS更便捷?并且这款软件最为关键的还是支持各种协议,让你能够在跨平台上面同步安卓和苹果上面的内容,你可以在服务器上面进行一些简单的内容管理,快来试试DAVx⁵与派盘的最佳组合吧。 DAVx⁵是一款…

LeetCode:18. 四数之和

18. 四数之和1&#xff09;题目2&#xff09;思路3&#xff09;代码4&#xff09;结果1&#xff09;题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &…

Codeforces Round #772 (Div. 2)

A. Min Or Sum 题目链接&#xff1a;Problem - A - Codeforces 样例输入&#xff1a; 4 3 1 3 2 5 1 2 4 8 16 2 6 6 3 3 5 6样例输出&#xff1a; 3 31 6 7题意&#xff1a;给你一个长度为n的数组&#xff0c;我们可以对这个数组进行操作&#xff0c;每次操作可以选择两个不…

ThinkPHP5之文件包含审计分析(五)

说明 该文章来源于同事lu2ker转载至此处&#xff0c;更多文章可参考&#xff1a;https://github.com/lu2ker/ 文章目录说明0x00 环境准备0x01 测试代码0x02 代码分析0x03 总结参考链接&#xff1a;Mochazz/ThinkPHP-Vuln/ 影响版本&#xff1a;5.0.0<ThinkPHP5<5.0.18 、…

Java - JIT即时编译

java前端编译器和后端编译器的作用Java前端编译器&#xff1a;javac 编译&#xff0c;在程序运行前&#xff0c;将 源文件 转化为 字节码 即 .class 文件Java 程序最初只能通过解释器解释执行&#xff0c;即 JVM 对字节码逐条解释执行&#xff0c;因此执行速度比较慢。字节码与…

【SAP Abap】SAP Flight 航班系统数据模型简介(SCARR、SPFLI、SFLIGHT、SBOOK等)

SAP Flight 航班系统数据模型简介&#xff08;SCARR、SPFLI、SFLIGHT、SBOOK等&#xff09;1、本文目的2、数据模型3、查看模型数据4、生成演示数据5、模型应用1、本文目的 SAP ABAP 系统都会自带 Flight 航班系统数据模型&#xff0c;其大量应用于 SAP ABAP 帮助文档、系统 D…

移动安全总结 2019

声明 本文是学习移动安全总结 2019. 下载地址 http://github5.com/view/1223而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 序言 随着2019年的逝去&#xff0c;二十一世纪第二个十年也已随之结束。回顾过去的十年&#xff0c;我们的生活随着科技的进…

养老院人员定位方案125K芯片AS3933/SI3933/GC3933/PAN3501

随着社会老龄化&#xff0c;高龄化&#xff0c;空巢化和病残化的迅速发展&#xff0c;将使得越来越多的老人住进养老院。虽养老院数量越来越多&#xff0c;但养老院人也越来越多&#xff0c;给现有的养老管理上带来压力&#xff0c;由于服务人员有限&#xff0c;无法及时顾及到…

【LeetCode每日一题】——89.格雷编码

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 数学 二【题目难度】 中等 三【题目编号】 89.格雷编码 四【题目描述】 n 位格雷码序列 是一…