MySQL查询技巧:高效检索单科及总分成绩前十名学生的方法分享

创始人
2024-12-16 12:03:56
0 次浏览
0 评论

mysql中一张学生表,查询出单科成绩前十名学生的所有信息和总分成绩前十名学生的所有信息在线等

学生表名称为:student,成绩字段单科为:subject。
学生姓名为:姓名

要搜索某科成绩前十名:mysql语句为:select*fromstudentorderbysubjectdesclimit10;

要搜索总成绩前十名:mysql调用的是:selectsum(re)re,namefromstudentgroupbynameorderbysubjectdesclimit10;

注意:

selectsum(re)re,name

>这句话的意思是:sum(科目)要添加到名为的一个科目的分数中的科目(这是总分),名称是字段,这里只有两个字段。

groupbynameorderbysubject:groupbyname表示按照列名关联。
当然,学生身上转录的名字可能是一样的,学号是最准确的。

orderby表示科目按照总分排名。

selectsum(re)ascountsubject,namefromstudentgroupbynameorderbycountsubjectdesclimit10;

背景信息:

学生成绩表常用SQL

1.主键对表

[sql]

/*级别表*/

>p

CreatableSC

(

SidINTREFERENCEStudent(Sid),/*学生号*/

CidINTREFERENCESCourse(Cid),/*课程号*/

ScoreINTNOTNULL,/*课程成绩*/

PRIMARYKEY(Sid,Cid)/*设置学号和课程号为主键组合*/)。
.Cname,MAX(s.Sc*ASMax,MIN(s.Score)ASMin,AVG(s.Score)ASaverage

FROMCoursecJOINSCsONc.Cid=s.Cid

GROUPBYc.Cname

/*这里注意,如果不按c.Cname分组,SQL语句会返回错误,而c.Cname在select语句中是允许的,因为它不会出现在函数中聚合或语句GROUPBY*/

3.]

SELECTSname,AVG(Score)ASverageFROMStudentJOINSC

ONStudent.Sid=SC.Sid

GROUPBYSname

80

/*基于聚合函数的删除只能在WHERE语句中进行。
Number不支持聚合函数。

SELECTRANK()OVER(ORDERBYSUM(ss.ScoreDESC)ASRank,s.Sname,

ISNULL(SUM(ss.Score),0)

FROMStudentsLEFTJOINSss

ONs.Sid​​=ss.Sid​​​​

/*内置SQLServer函数。
*/5.tsJOINSCssONs.Sid​​=ss.Sid​​​​​​

GROUPBYs.SnameHAVINGSUM(ss.Score)BETWEEN100AND200

查询每个学生的各科成绩sql语句

1.查询每个学生各科成绩的SQL语句:

selecta.studentid,a.name,a.sex,v1.scoreas'语文',v2.scoreas'数学',v3。
语言',v4.score

as'哲学',(v1.score+v2.score+v3.score+v4.score)/4as'平均分'fromStuedntaleftjoin

(如果lectstudentid,scorefromgradewherecid=(selectcidfromcoursewherecname='中文'))asv1

ona.studentid=v1.studentid

leftjoin

(selectstudentid,scorefromgradewherecid=(selectcidfromcoursewherecname='数学'))asv2

ona.studentid=v2.studentid

leftjoin

(selectstudentid,scorefromgradewherecid=(selectcidfromcoursewherecname='英语'))asv3

ona.studentid=v3.studentid

leftjoin

(如果lectstudentid,scorefromgradewherecid=(selectcidfromcoursewherecname='哲学'))asv4

ona.studentid=v4.studentid

orderbya.studentid

2.SQL数据库简介:

(1)SQL是StructuredQueryLanguage(结构化查询语言)的缩写。
SQL是专门为数据库创建的一组操作命令,是一种功能齐全的数据库语言。
使用时,只需要给出“做什么”的命令,“怎么做”不需要用户考虑。

(2)SQL功能强大、易学、易用。
它已经成为数据库操作的基础,现在几乎所有数据库都支持SQL。

(3)SQL数据库的数据架构基本上是三层结构,但使用的术语与关系模型的传统术语不同。

(4)在SQL中,关系模式(schema)被称为“basetable”;存储方案(内部方案)称为“存储文件”(storedfile);称为“视线”;元组称为“行”,属性称为“列”。

热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...