微服务跨数据库联合查询_MySQL数据库联合查询

大家好,我是anyux。数据库联表查询很重要,内联查询更是尤为重要。

7a50bf25883fa1f041652e951eab33c9.png

需要将school.sql文件导入到数据库中

数据库多表联合查询,school库下表的逻辑结构关系都在下图中。可以通过驱动表加子表配合实现所有查询要求。

ca248e7b608f3cad65ef74cfc393e5e5.png

统计zhang3,学习了几门课

select STU.sname as 姓名, count(SC.sno) as 数量 from student as STU join sc as SC on STU.sno= SC.sno where STU.sname='zhang3';

查询zhang3,学习的课程名称有哪些?

方法1

select STU.sname as 姓名, COU.cname as 课程名  from student as STU join sc as SC on STU.sno = SC.sno join course as COU on SC.cno = COU.cno where STU.sname='zhang3';

方法2(推荐)

select STU.sname as 姓名, group_concat(COU.cname) as 课程名  from student as STU join sc as SC on STU.sno = SC.sno join course as COU on SC.cno = COU.cno where STU.sname='zhang3' group by STU.sname;

查询KING老师教的学生名.

select TEA.tname as 教师名称, group_concat(STU.sname) as 学生名称 from teacher as TEA join course as COU on TEA.tno=COU.tno join sc as SC on SC.cno=COU.cno join student as STU on STU.sno=SC.sno where TEA.tname='KING' group by TEA.tname;

查询KING所教课程的平均分数

select COU.cname as 课程名称,TEA.tname as 教师名称, avg(SC.score) as 课程成绩 from teacher as TEA join course as COU on TEA.tno=COU.tno join sc as SC on SC.cno = COU.cno where TEA.tname='KING' group by COU.cname,TEA.tname;

每位老师所教课程的平均分,并按平均分排序

select TEA.tname as 教师名称, COU.cname as 课程名称, avg(SC.score) as 平均成绩  from teacher as TEA join course as COU on TEA.tno=COU.tno join sc as SC on SC.cno=COU.cno group by TEA.tname, COU.cname order by AVG(SC.score) DESC;

查询KING所教的不及格的学生姓名

select STU.sname as 学生姓名 from teacher as TEA join course as COU on TEA.tno=COU.tno join sc as SC on SC.cno=COU.cno join student as STU on STU.sno=SC.sno where TEA.tname='KING' and SC.score<60;

查询所有老师所教学生不及格的信息

方法1

select TEA.tname as 教师名称,STU.sname as 学生姓名,SC.score as 学生成绩 from teacher as TEA join course as COU on TEA.tno=COU.tno join sc as SC on SC.cno=COU.cno join student as STU on STU.sno=SC.sno where SC.score<60;

方法2(推荐,显示优化)

select TEA.tname as 教师名称,group_concat(concat(STU.sname,":",SC.score)) as 不及格的 from teacher as TEA join course as COU on TEA.tno=COU.tno join sc as SC on SC.cno=COU.cno join student as STU on STU.sno=SC.sno where SC.score<60 group by TEA.tno;

查询平均成绩大于60分的同学的学号和平均成绩;

select STU.sno as 学号, avg(SC.score) as 平均成绩 from student as STU join sc as SC on STU.sno=SC.sno group by STU.sno having avg(SC.score)>60;

查询所有同学的学号、姓名、选课数、总成绩;

select STU.sno as 学号, STU.sname as 姓名, count(SC.cno) as 选课数, sum(SC.score) as 总成绩  from student as STU join sc as SC on STU.sno=SC.sno group by STU.sno ;

查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

select sc.cno as 课程ID, max(sc.score) as 最高分,min(sc.score) as 最低分 from sc group by sc.cno;

统计各位老师,所教课程的及格率

select TEA.tname as 教师名称,COU.cname as 课程名称,concat((select count(sc.cno) from sc where sc.score>60)/(select count(sc.cno) from sc)*100,'%') as 及格率  from teacher as TEA join course as COU on TEA.tno=COU.tno join sc as SC on SC.cno=COU.cno group by TEA.tno,COU.cname;
422aa68f374570082739b32ac073d175.png

查询每门课程被选修的学生数

select COU.cno as 课程名称, count(STU.sno) as 学生数量 from student as STU join sc as SC on STU.sno=SC.sno join course as COU on SC.cno=COU.cno group by COU.cno;

查询出只选修了一门课程的全部学生的学号和姓名

select STU.sno as 学号,STU.sname as 学生名称,count(SC.cno) as 选修课程数量 from student as STU join sc as SC on STU.sno=SC.sno group by SC.sno having count(SC.sno)=1;

查询选修课程门数超过1门的学生信息

select STU.sno as 学号,STU.sname as 学生名称,count(SC.cno) as 选修课程数量 from student as STU join sc as SC on STU.sno=SC.sno group by SC.sno having count(SC.sno)!=1;

统计每门课程:优秀(85分以上),良好(70-85),一般(60-70),不及格(小于60)的学生列表

select STU.sname as 学生名称,STU.sno as 学号,COU.cname as 课程名称, case when SC.score>85 then '优秀' when SC.score>70 and SC.score<=85 then '良好' when SC.score>=60 and SC.score<=70 then '一般' when SC.score<60 then '不及格' end as 成绩状态 from student as STU join sc as SC on STU.sno=SC.sno join course as COU on SC.cno=COU.cno group by COU.cno,STU.sno,STU.sname,SC.score;

查询平均成绩大于85的所有学生的学号、姓名和平均成绩

select STU.sno as 学号,STU.sname as 学生名称, avg(SC.score) as 平均成绩 from student as STU join sc as SC on STU.sno=SC.sno group by SC.score,STU.sname,STU.sno having avg(SC.score)>85;

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

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

相关文章

ASP正则表达式方面小笔记

比较随意的一些&#xff21;&#xff33;&#xff30;正则表达式方面的笔记&#xff08;或学习小甜品&#xff09; <% 方法说明:Set RsObj Server.CreateObject快捷Function [&rg](ByRef rgRef, ByVal pe, ByVal ig, ByVal gb, ByVal [?Casually]) Call RgNew(rgRef,…

[html] 举例说明原生的html组件有哪些?

[html] 举例说明原生的html组件有哪些&#xff1f; <dialog><progress>……个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

ADO.NET的记忆碎片(七)

使用DataTable类的搜索和筛选功能DataTable类公开了两个方法&#xff1a;Find和SelectFind方法&#xff1a;可以根据主键来查找数据行。Select方法&#xff1a;更类似于筛选器&#xff0c;根据更灵活的搜索条件返回多个数据行在查询数据库获取信息时&#xff0c;假如使用如下SQ…

mos 控制交流_电机控制器母线电容的设计选型

母线电容的定义在电机控制器中&#xff0c;电池包的直流电作为输入电源&#xff0c;需要通过直流母线与电机控制器连接&#xff0c;该方式叫DC-LINK或者直流支撑&#xff0c;其中的电容我们称之为母线电容或者支撑电容或者DC-Link电容。由于电机控制器从电池包得到有效值或者峰…

方法的返回值类型是object_JavaScript中如何判断类型

1. typeoftypeof (整数/小数/自然对数Math.LN2/正无穷大数Infinity) > numbertypeof NaN > numbertypeof (function(){}) > functiontypeof Math.sin > functiontypeof undefined > undefinedtypeof xxxx > stringtypeof > stringtypeof true/false >…

从mysql8.0读取数据并形成pandas dataframe类型数据,精确定位行列式中的元素,并读取...

from pandas import * import pandas as pd from sqlalchemy import create_engine engine create_engine("mysqlpymysql://root:wenwajiao127.0.0.1:3306/ryandb?charsetUTF8MB4")#charset设置用于mysql8.0的新型字符集&#xff0c;清根据你的需要设定 print(engi…

c++代码整洁之道pdf_别再问如何用Python提取PDF内容了!

公众号后台回复“图书“&#xff0c;了解更多号主新书内容作者&#xff1a;陈熹来源&#xff1a;早起Python导读大家好&#xff0c;在之前的办公自动化系列文章中我们已经详细介绍了&#x1f449;如何使用Python批量处理PDF文件&#xff0c;包括合并、拆分、水印、加密等操作。…

[html] 你知道什么是粘性布局吗?

[html] 你知道什么是粘性布局吗&#xff1f; MDN 是这样解释的&#xff1a;Sticky positioning can be thought of as a hybrid of relative and fixed positioning. A stickily positioned element is treated as relatively positioned until it crosses a specified thresh…

vim编辑模式_sublime vim模式和快捷键

vim的四种模式及模式切换vim一共有4个模式&#xff1a;正常模式 (Normal-mode) 插入模式 (Insert-mode)命令模式 (Command-mode)可视模式 (Visual-mode)正常模式启动vim后默认处于正常模式。不论位于什么模式&#xff0c;按下<Esc>键(有时需要按两下&#xff09;都会进入…

windows下启动activemq闪退

本地测试activemq时,双击bin下的activemq.bat,命令行出现闪现问题 解决:在当前目录启动命令行 输入 activemq-admin.bat start 可以正常启动 原因暂时还不知道 转载于:https://www.cnblogs.com/jiushixihuandaqingtian/p/11393557.html

win7下注册s2008

今天打开vs居然提示获取了&#xff0c;按照xp的办法没法注册&#xff0c;真是纠结啊。结果点击卸载按钮就给卸载了。不得不重新安装。 百度一搜&#xff0c;才知道升级注册的按钮被屏蔽了。╮(╯▽╰)╭&#xff0c;网上有如下代码搜索窗口并把它显示出来。 关键函数如下&#…

python读取txt文件_python实现读写txt文件的几种方法

一、读写模式&#xff1a;w&#xff1a;向文件中写入内容&#xff0c;w会清空原来文本内容a&#xff1a;向文件中追加内容r&#xff1a;从文件中读取内容wb&#xff1a;以二进制形式写入内容。rb&#xff1a;以二进制形式读文件内容ab&#xff1a;以二进制形式追加内容a、r、w&…

[html] html5的Notification桌面通知如何请求权限?

[html] html5的Notification桌面通知如何请求权限&#xff1f; Notification.requestPermission(callback);个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

python代码转换为pytorch_pytorch使用 to 进行类型转换方式

在程序中&#xff0c;有多种方法进行强制类型转换。本博文将介绍一个非常常用的方法&#xff1a;to()方法。我们通常使用它来进行GPU和CPU的类型转换&#xff0c;但其实也可以用来进行torch的dtype转换。常见方法&#xff1a;tensor.to(‘cuda:0)先看官网介绍&#xff1a;**Per…

Oracle 时区(TimeZone )-- DST

Daylight Savings Time (DST) 指 定一个时区的时候&#xff0c;可以使用数字(-05:00)&#xff0c;缩写(EST)或者地区名称(US/Eastern)。 在多数情况下&#xff0c;它们的效果是一样的。但是在DST的处理过 程中&#xff0c;如果使用地区名称来指定时区&#xff0c;ORACLE会自动进…

centos7升级openssh

注意&#xff1a; openssl版本(openssl版本要大于1.0.1&#xff0c;zlib版本要大于1.1.4) 一、安装依赖包 yum -y install gcc make perl # zlib zlib-devel yum install -y gcc openssl-devel pam-devel rpm-buildyum install telnet-ser…

java 复制对象_Java程序员必备:序列化全方位解析

前言 相信大家日常开发中&#xff0c;经常看到Java对象“implements Serializable”。那么&#xff0c;它到底有什么用呢&#xff1f;本文从以下几个角度来解析序列这一块知识点~什么是Java序列化&#xff1f;为什么需要序列化&#xff1f;序列化用途Java序列化常用API序列化的…

[html] history和hash两种路由方式的最大区别是什么?

[html] history和hash两种路由方式的最大区别是什么&#xff1f; hash 只在当前URL内刷新&#xff0c;history支持多个URL个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端…

decimal类型对象里面定义什么类型_奥斯塔罗 单身开启桃花雷达 现阶段的我适合什么类型的对象?...

相信单身朋友总好奇下一位对象是否出现了&#xff1f;或是这么多人我该如何察觉下一位对象呢&#xff1f;如果单身的你正寻找对象中那就跟奥斯老师一起来看看下一位对象的个性与特征吧&#xff01;&#xff1c;&#xff1c;直觉选一张牌&#xff1e;>牌l选择到这组牌的朋友&…

Centos中查找文件、目录、内容

1、查找文件 find / -name filename2、查找文件夹&#xff08;目录&#xff09; find / -name path -type d3、查找内容 find . | xargs grep -ri content3.1、只显示文件名称 find . | xargs grep -ril content 只显示文件名称转载于:https://www.cnblogs.com/xiaohaojs/p/114…