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
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

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

3
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

4
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

5
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

6
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

7
解决MYSQL 1064错误:proje... MYSQL建表1064错误?这是由于project_state参数设置为非零值且...

8
零基础入行Java:五步助你掌握编程技巧 北大青鸟java培训:零基础小白如何快速入行JAVA?很多JAVA编程初学者在第...

9
MySQL日期存储选择:DateTime... MySQL保存日期,用哪种数据类型合适?datetime?timestamp?还...

10
掌握MySQL常用命令:高效管理数据库的... MySQL数据库常用命令(新建/删除/查询&am...