MySQL查询技巧:高效检索单科及总分成绩前十名学生的方法分享
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]
/*级别表*/
>pCreatableSC
(
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不支持聚合函数。
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);称为“视线”;元组称为“行”,属性称为“列”。