SQL数据查询

article/2025/10/23 3:19:23

目录

1、求各系学生的平均成绩,并把结果存入新建的数据库表中(请自己创建一个表存放结果)

2、统计每门课程的选修学生人数及各门课程的平均成绩

3、找出各系年龄最大的学生,显示其学号、姓名;(利用相关子查询来实现)

或: 

4、统计各系学生的人数,结果按升序排列

5、按系统计各系学生的平均年龄,结果按降序排列

6、统计无先修课的课程的学分总数

7、统计每位学生选修课程的门数、总学分及其平均成绩

8、查询每位选修了课程的学生的学号,姓名,课程号,课程名,成绩

9、找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩升序排列

10、查询选修了“1”或“2”号课程的学生学号和姓名

11、查询选修了课程名为“数据库”且成绩在60分以下的学生的学号、姓名和成绩

12、查询没有选修课程的学生的基本信息

13、查询选修了3门及以上课程的学生学号

14、查询选修课程成绩至少有一门在80分以上的学生学号

15、查询选修课程成绩都在80分以上的学生的学号

16、 查询选修课程的平均成绩在80分以上的学生的学号

17、按系别统计各系平均成绩在80分以上的人数,结果按降序排列

18、把选修了课程名为“数据库”的学生的各门课成绩提高10%

19、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉 


 

初始数据:

1、求各系学生的平均成绩,并把结果存入新建的数据库表中(请自己创建一个表存放结果)

Create view ss_avgAsSelect Sdept,avg(Grade) as '平均成绩' from Student,ScGroup by Sdept  

 

2、统计每门课程的选修学生人数及各门课程的平均成绩

Select cno,avg(grade) as '平均成绩',count (sno) as '选课人数' from Sc Group by cno Order by cno

3、找出各系年龄最大的学生,显示其学号、姓名;(利用相关子查询来实现)

Select Sno,Sdept,Sname,max(Sage) as '年龄最大'from StudentGroup by Sdept,Sno,Sname Order by Sdept,Sno,Sname

或: 

Select Sno,Sname from Student a where Sage = (select max(Sage) from Student b where a.Sdept = b.Sdept) 

 

 

4、统计各系学生的人数,结果按升序排列

Select Sdept,count(Sno) as '学生人数'from StudentGroup by Sdept Order by Sdept

5、按系统计各系学生的平均年龄,结果按降序排列

Select Sdept,min(Sage) as '平均年龄'from StudentGroup by Sdept,Sage Order by Sage desc

6、统计无先修课的课程的学分总数

Select sum(Credit) as '学分总数' From Course where Cpon is null Group by Cpon Order by Cpon 

 

7、统计每位学生选修课程的门数、总学分及其平均成绩

Select sno,avg(grade) as  '平均成绩',sum (Credit) as '总学分',count(Sc.Cno) as '选课门数' From Sc,Course Where Course.Cno = Sc.Cno        //Where这一句很重要!Group by sno Order by sno 

8、查询每位选修了课程的学生的学号,姓名,课程号,课程名,成绩

Select s.sno,sname,sc.cno,cname,gradefrom student as s right join Sc on s.sno = sc.Sno join Course as c on sc.cno = c.cno

 

或: 

Select s.sno,sname,sc.cno,cname,gradefrom student as s,Sc,Course as cwhere s.sno = sc.Sno and sc.cno = c.cno

或: 

Select Sc.sno as '学号',Student.sname as '姓名',Sc.cno as '课程号',Course.cname as '课程名',Sc.grade as '成绩' From Course,Student,Sc Where Sc.sno = Student.sno and Sc.cno = Course.cno        //这一步很重要!Group by Student.sname,Sc.Sno,Sc.cno,Course.cname,Sc.grade Order by Student.sname,Sc.Sno,Sc.cno,Course.cname,Sc.grade

 

9、找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩升序排列

Select S.Sdept,avg(grade) as '平均成绩',S.Sname as '姓名'from Student as s left join Sc on s.sno = Sc.sno group by Sdept,S.Sname having avg(grade)>85  order by avg(grade) 

10、查询选修了“1”或“2”号课程的学生学号和姓名

Select s.sno,s.Sname from Student as s,Sc where (Sc.Cno = 1 or Sc.Cno = 2) and s.sno = Sc.snoGroup by s.sno,s.Sname Order by s.sno,s.Sname

11、查询选修了课程名为“数据库”且成绩在60分以下的学生的学号、姓名和成绩

Select s.sno,s.Sname,Sc.Grade from Student as s,Sc,Course as cwhere c.Cname = '数据库' and grade > 85 and Sc.Cno = c.Cno and Sc.Sno = s.Sno

12、查询没有选修课程的学生的基本信息

Select s.sno,s.Sname from Student as s left join Sc on Sc.Sno = s.Snogroup by s.sno,s.Sname having count(Cno) = 0 order by s.sno,s.Sname

13、查询选修了3门及以上课程的学生学号

Select s.sno,s.Sname from Student as s left join Sc on Sc.Sno = s.Snogroup by s.sno,s.Sname having count(Cno) > 2 order by s.sno,s.Sname

14、查询选修课程成绩至少有一门在80分以上的学生学号

Select s.sno from Student as s left join Sc on Sc.Sno = s.Sno where Grade > 80 and Grade is not NULLgroup by s.sno order by s.sno

15、查询选修课程成绩都在80分以上的学生的学号

Select s.sno from Student as s left join Sc on Sc.Sno = s.Sno where S.Sno not in (select s.Sno from Student as s left join Sc on s.Sno = Sc.Sno where (grade <= 80 or grade is null) group by s.Sno) group by s.sno order by s.sno

16、 查询选修课程的平均成绩在80分以上的学生的学号

Select s.sno from Student as s left join Sc on Sc.Sno = s.Sno where Grade is not NULLgroup by s.sno having avg(Grade) > 80  order by s.sno

17、按系别统计各系平均成绩在80分以上的人数,结果按降序排列

 distinct:唯一不同,即一样的只算一次

Select s.Sdept,count(distinct s.sno) as '人数' from Student as s left join Sc on Sc.Sno = s.Sno where Grade is not nullgroup by s.Sdept order by count(s.sno) desc

18、把选修了课程名为“数据库”的学生的各门课成绩提高10%

Select *from ScUpdate Sc Set grade = grade * 1.1Where cno in (select cno from course Where cname = '数据库')

执行之前 

 

执行之后 

19、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉 

Delete from scWhere grade < (select avg(grade) from course,Sc Where course.Cno = 2)Select *from Sc

 

对于连接:无论是right join 还是left join,规律是“右边补null”!

对于group by x,y order by x,y可以理解为按照(x,y)这个的组合来进行分组排序!

Count会计算值为NULL的Grade,Avg(Grade)不会!

 


http://chatgpt.dhexx.cn/article/OLBXQEUu.shtml

相关文章

数据库:SQL数据查询(详细、全面)

以下题目中加粗字体为重点哦~ 一、查询指定列、全部列 1.查询全体学生的学号和姓名 SELECT SNO, SN FROM S 2.查询全部列 SELECT * FROM S 二、查询经过计算的值 3. 查询全体学生的姓名、出生年份 SELECT SN, 2020-AGE FROM S 4. 查村全体学生的姓名、出生年份和系名&#xff…

2022留学生落户上海成本大概是怎样的?

现在留学生落户上海整体来说除了对于社保没有要求的落户方式&#xff0c;那么对于普通的留学生落户来说&#xff0c;就得有社保和个税的要求了&#xff0c;那么这里面的成本是有多少呢&#xff0c;下面来看看这里面的情况&#xff1a; 留学生落户上海根据判断自己的社保基数及累…

非上海户籍人员在上海买房需要啥条件?

和你一起终身学习&#xff0c;这里是程序员Android 非沪籍想在上海买房说实话有点难&#xff0c;毕竟每平米大几万的房价不是盖的&#xff0c;既然您点进来看了&#xff0c;说明你有这个想法&#xff0c;有想法就行&#xff0c;虽然我们不一定能买得起&#xff0c;但不能阻挡我…

上海落户计算机水平毕业研究生,2021上海积分落户应届毕业生直接落户上海

原标题&#xff1a;2021上海积分落户应届毕业生直接落户上海 ——上海落户积分120分&#xff0c;不是研究生毕业就有100分吗&#xff1f;研究生毕业就有100分&#xff0c;正常读书年龄肯定很小就有30分了啊&#xff0c;不是直接就可以落户了吗&#xff1f;为什么大家都在说很难…

上海居住证转户口证攻略

2019独角兽企业重金招聘Python工程师标准>>> 一、居转户条件&#xff1a; 1.居住证满7年&#xff0c;社保满7年&#xff0c;税单满7年 2.最近3年连续社保是上海平均值2倍以上&#xff08;或者具备中级以上职称&#xff09; 3.自有产权房 二、居转户材料&#x…

2019非上海生源高校应届生落户指南

流程 一、计算积分基本要素导向要素用人单位要素 二、准备申请材料三、审核--证明信四、证明信-个人户口本落户社区公共户落户家庭户或者单位集体户口落户家庭户落户单位集体户口 博主从五月份准备落户申请材料&#xff0c;到十月中旬拿到上海个人户口本&#xff0c;历时五个月…

上海程序员落户攻略

上海居住证落户简称 “居转户” &#xff0c; 本文主要写给在上海打拼的程序员们&#xff0c;告诉大家比写代码更重要的一件事情是落户。讲述一些关于上海居住证落户的一些政策和一些建议。 很多人以为居转户&#xff0c;只要上海居住证满7年就可以转了&#xff0c;殊不知&…

上海落户计算机水平毕业研究生,2020年上海落户有哪些新规定?附研究生落户分值表!...

相信对于不少的年轻人来说&#xff0c;上海都是他们向往的城市&#xff0c;很多毕业生都在毕业后都希望可以留在上海&#xff0c;如果能够落户就再好不过了。下面小编就给大家说说2020年上海落户有哪些新规定&#xff0c;研究生如何落户&#xff0c;想了解的快来看看吧。 一、2…

2017年上海最新落户政策重磅出炉!你达标了吗?(明年就毕业了希望一切顺利)

2017年最新非上海户籍的应届毕业生落户标准公布&#xff0c; 应届毕业生落户标准分为72分&#xff01; 具体申请可根据2017《上海市居住证》和 居住证积分指南、申请本市户籍办法。 想想当初选择来魔都读书生活&#xff0c; 每天起早贪黑究竟为了什么&#xff1f; 很多人的“小…

【个人亲历】上海市人才引进落户最详细的流程记录说明

目录 一、材料准备 二、网上审核 2.1、预审上报 2.2、线下提供证明材料 2.3、初审、审核 2.4、公示 三、落户证明领取和准迁证查询 3.1、线下领取落户证明 3.2、准迁证查询 附&#xff1a;应用汇总&#xff1a; 从2022年6月领导通知我够资格人才引进落户以及2022…

2022留学生落户上海怎么办理社区公共户?

很多留学生会担心的一个问题是个人和直系亲属在沪无房产&#xff0c;且单位也无集体户怎么办呢? 其实无须担心&#xff0c;这种情况下可以按公安机关规定申请挂靠 社区公共户!简单而言 &#xff0c;就是租房在哪&#xff0c;就落户在相应的派出所。 落户通过后&#xff0c;留…

重磅!上海出落户新政:双一流应届硕士可直接落户!

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 编辑丨科研大匠 9月23日&#xff0c;据上海学生就业创业服务网&#xff0c;上海市高校招生和就业工作联席会议制定的《2020年非上海生源应届普通高校毕业生进沪就业申请本市户籍评分办法》&#xff08;以下简…

上海落户条件—海归落户上海

上海落户条件—海归落户上海 国际留学生落户上海 2020年底&#xff0c;上海市政府发布上海落户2020新政改革&#xff0c;明确指出“基于国家户籍制度改革的新趋势&#xff0c;以及上海所面临的人才不足和各地人才竞争形势&#xff0c;对上海居住证转户籍人口提出一个基本的政策…

留学回国人员申办上海常住户口实施细则

留学回国人员申办上海常住户口实施细则 &#xff08;政策有效期至2025年11月30日&#xff09; 第一条 目的和依据 为贯彻落实人才强市战略&#xff0c;加大海外人才引进力度&#xff0c;规范留学回国人员申办上海常住户口工作&#xff0c;根据《公安部、人力资源和社会保障部关…

微信appid、openid、unionid的区别和关联

微信小程序的appid、openid、unionid appidopenidunionid三者关系 appid application identification (简称appid) 翻译一下就是某个应用的标识(id) 比如说在一个公众号主体下 你不仅可以拥有h5网站,小程序,小游戏,企业微信等等,这些都有一个单独的appid openid 每一个应用下…

获取openId

小程序—获取openId&#xff08;用来标识用户唯一&#xff09; 在需要的页面.js下 getopenid(){wx.cloud.callFunction({name:getOpenId,//注意名字是自己当前云函数中的openID的目录名success(res){console.log("获取云函数成功",res);},fail(res){console.log(&qu…

微信的openid

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter7_3 微信h5静默、非静默授权获取用户openId的方法和步骤: 一、openId是什么&#xff1f; openId是用户在当前公众号下的唯一标识&#xff08;‘身份证’&#xff09;&#xff0c;就是说通过这个openId&#xff0c;就…

微信小程序获取openid

获取openId (用户唯一标识)和session_key 第一步&#xff0c;获取code 调用wx.login(OBJECT) 获取登录凭证&#xff08;code&#xff09;进而换取用户登录态信息&#xff0c;包括用户的唯一标识&#xff08;openid&#xff09; 及本次登录的 会话密钥&#xff08;session_key…

微信公众号开发:如何获取openId(最简单的方式)

最近的项目涉及到微信公众号的开发&#xff0c;必然要涉及到微信公众号的openId的获取&#xff0c;以及appId的获取&#xff0c;appId的获取很简单&#xff0c;但是如何才能获取到openId呢&#xff1f; 我找到了一种最简单的获取方法&#xff0c;整理如下&#xff1a; 注册自己…

如何获取用户的微信openid

如何获取用户的微信openid 如何获取用户的微信openid &#xff08;1&#xff09;首先登陆微信公众号后台&#xff08;确保你有登陆微信后台的权限才可以哦&#xff09;&#xff08;2&#xff09;登陆后点击左侧“用户管理”&#xff0c;然后找到你要查的用户&#xff0c;右击头…