怎么在MYSQL查询学生平均成绩及其名次

工具/材料:ManagementStudio。

1.首先,单击桌面上的“ManagementStudio”图标。

2.然后在这个界面中,点击左上角的“新建查询”选项。

3.然后在该界面中输入SQL语句“selectname,AVG(grade),nofromtest2groupbyname,no”即可查询学生的平均成绩和排名。

4.然后在这个界面中,点击左上角的“执行”按钮。

5.最后,在该界面中显示学生的平均成绩和排名。

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

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

查询单科成绩前十名:mysql语句为:select*fromstudentorderbysubjectdesclimit10;

查询总成绩前十名:mysql语句为:select*fromstudentorderbysubjectdesclimit10;

查询总成绩前十名:mysql语句为:selectsum(subject)subject,namefromstudentgroupbynameorderbysubjectdesclimit10;

注意:

selectsum(subject)subject,name

这句话的意思是:sum(subject)subject用于将单个科目的分数相加。
按科目(即总分)命名,name是一个字段,这里只有两个字段。

groupbynameorderbysubject:groupbyname表示按照name列分组。
当然,学生成绩单上的名字可能是一样的,学号是最准确的。
这里只是一个例子。

orderbysubject表示按照总分排序。
这里的主语是指之前改名的总分。

selectsum(subject)ascountsubject,namefromstudentgroupbynameorderbycountsubjectdesclimit10;

扩展信息:

学生成绩表常用SQL

1.插入表中匹配主键

[sql]

/*成绩表*/

CREATETABLESC

(

SidINTREFERENCESStudent(Sid),/*学号*/

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

ScoreINTNOTNULL,/*课程成绩*/

PRIMARYKEY(Sid,Cid)/*设置学号和课程号为复合主键*/)2.查询各科目最高分、最低分、平均分

[sql]

SELECTc.Cname,MAX(s.Score)ASMax,MIN(s.Score)ASMin,AVG(s.Score)ASaverage

FROMCoursecJOINSCsONc.Cid=s.Cid

GROUPBYc.Cname

/*这里需要注意的是,如果不根据c.Cname进行分组,SQL语句会报错,并且在SELECT语句中c.Cname是非法的。
,因为它不会出现在聚合函数或GROUPBY语句中*/

3.查询平均分大于80分的学生姓名及平均成绩

[sql]

SELECTSname,AVG(Score)ASverageFROMStudentJOINSC

ONStudent。
Sid=SC.Sid

GROUPBYSname

80

/*基于聚合函数的删除只能在HAVING语句中完成。
WHERE语句不支持聚合函数。
数量*/

4。
根据学生的总成绩排名。
如果总分相同,则排名相同

[sql]

SELECTRANK()OVER(ORDERBYSUM(ss.Score)DESC)ASRank,s.Sname,

ISNULL(SUM(ss.Score),0)

FROMStudentsLEFTJOINSCss

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

GROUPBYs.Sname

ORDERBYSUM(ss.Score)DESC

/*RANK()是SQLServer的内置函数。
语法为

RANK()OVER([partition_by_clause]order_by_clause).*/5。
查询总分在100到200之间的学生姓名和总分

[sql]

SELECTs.Sname,SUM(ss.Score)FROMStudentsJOINSCssONs.Sid​​=ss.Sid​​

GROUPBYs.SnameHAVINGSUM(ss.Score)BETWEEN100AND200

使用mysql一个数据库中有俩个表:student(学生表)和score(成绩表)

设置@i=0。

SQL本身有数据导入操作。
但是,您需要做一些额外的工作才能从备份文件中获取数据。
下面提供了一个示例。

SQLServer已经有一个DOE数据库,里面有很多数据。
现在让我们从另一个备份文件A1.BAK(不是来自的备份文件)获取一些附加数据。
DOE数据库)(即在DOE中添加一些数据表以及表中已写入的数据后),它保持原始DOE中的数据不变。

扩展信息:

在为MySQL分配足够的内存之前,请考虑MySQL在各个方面的内存需求。
需要考虑的关键领域包括:并发连接-大量并发连接需要大量内存用于排序和临时表。
在撰写本文时,16GB到32GB的RAM足以让数据库处理超过3000个并发连接。

内存碎片会消耗大约10%或更多的内存。
缓存和缓冲区(例如innodb_buffer_pool_size、key_buffer_size、query_cache_size等)消耗大约80%的已分配内存。

参考来源:百度百科-MySQL数据库