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

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

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

查询单科成绩前十:mysql语句为:select * from student order by subject desc limit 10

查询总分成绩前十:mysql语句为:select sum(subject) subject,name from student group by name order by subject desc limit 10

注:

select sum(subject) subject,name

这句的意思是:sum(subject) subject 把单科成绩加总用subject 来命名(就是总成绩),name就是一个字段,这里只有两个字段。

group by name order by subject : group by name 的意思按照名字这一栏来分组,当然,学生成绩表名字有可能是一样的,按照学号是最准确的,这里只是举个例子。

order by subject  这句的意思是按照总分成绩排序,这里的subject 是前面重命名总分的意思。

select sum(subject) as countsubject,name from student group by name order by countsubject desc limit 10

扩展资料:

学生成绩表常用sql

1. 在表中插入符合主键

[sql]

/*成绩表*/

CREATE TABLE SC

(

Sid INT REFERENCES Student(Sid), /*学生学号*/

Cid INT REFERENCES Course(Cid), /*课程编号*/

Score INT NOT NULL, /*课程分数*/

PRIMARY KEY(Sid,Cid) /*将学生学号和课程编号设为复合主键*/ 

)

2. 查询各科成绩最高分,最低分以及平均分

[sql]

SELECT c.Cname, MAX(s.Score) AS Max, MIN(s.Score) AS Min, AVG(s.Score) AS Average 

FROM Course c JOIN SC s ON c.Cid = s.Cid 

GROUP BY c.Cname 

/*此处应注意,若不按照c.Cname进行分组,SQL语句会报错,c.Cname在SELECT语句中不合法,因为它并未出现在聚合函数中也没有出现在GROUP BY语句中*/

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

[sql]

SELECT Sname, AVG(Score) AS Average FROM Student JOIN SC 

ON Student.Sid=SC.Sid 

GROUP BY Sname

HAVING AVG(Score)>80 

/*以聚合函数为条件进行删选只能在HAVING语句中进行,WHERE语句不支持聚合函数*/

4. 按总分为学生排名,总分相同名次相同

[sql]

SELECT RANK() OVER (ORDER BY SUM(ss.Score) DESC) AS Rank, s.Sname,

ISNULL(SUM(ss.Score),0) 

FROM Student s LEFT JOIN SC ss 

ON s.Sid = ss.Sid 

GROUP BY s.Sname 

ORDER BY SUM(ss.Score) DESC

/*RANK()是SQL Server的一个built-in函数,语法为

RANK() OVER ( [ partition_by_clause ] order_by_clause ).*/

5. 查询总分在100至200之间的学生姓名及总分

[sql]

SELECT s.Sname,SUM(ss.Score) FROM Student s JOIN SC ss ON s.Sid=ss.Sid

GROUP BY s.Sname HAVING SUM(ss.Score) BETWEEN 100 AND 200

《高性能MySQL(第3版)》(施瓦茨 (Baron Schwartz))电子书网盘下载免费在线阅读

资源链接:

链接:https://pan.baidu.com/s/1sDHCWXED7csP03u-dwYB2Q

提取码:enz6

书名:高性能MySQL(第3版)

作者:施瓦茨 (Baron Schwartz)

译者:宁海元

豆瓣评分:9.3

出版社:电子工业出版社

出版年份:2013-5-1

页数:764

内容简介:

《高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充。全书共分为16 章和6 个附录,内容涵盖mysql 架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的mysql 和mysql相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。

《高性能mysql(第3版)》不但适合数据库管理员(dba)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。

作者简介:

关于作者

Baron Schwartz 是一位软件工程师,居住在弗吉尼亚州的Charlottesville,网络常用名是Xaprb,这是按照QWERTY 键盘的顺序在Dvorak 键盘上打出来的名字。在不忙于解决有趣的编程挑战时,Baron 会和他的妻子Lynn 以及小狗Carbon 一起享受闲暇的时光。他有一个软件工程方面的博客,地址是http://www.xaprb.com/blog/

Peter Zaitsev 曾经是MySQL AB 公司高性能组的经理,目前在运作mysqlperformance

blog.com 网站。他擅长于帮助那些每天有数以百万计访问量的网站的管理员解决问题,这些网站通常需要几百台机器来处理TB 级的数据。他常常为了解决一个问题而不停地升级硬件和软件(比如查询优化)。Peter 还经常在各种会议上演讲。

Vadim Tkachenko 曾经是MySQL AB 公司的性能工程师。作为一名在多线程编程和同步方面的专家,他的主要工作是基准测试、性能剖析,以及找出系统的性能瓶颈。他还在性能监控和调优方面做了一些工作,使得MySQL 在多核机器上有更好的可扩展性。

================================================================

译者简介

宁海元 有超过十年的数据库管理经验,从最初到SQL Server 2000到Oracle到MySQL,擅长数据库高可用架构,性能优化和故障诊断。2007年加入淘宝,带领淘宝DBA团队支撑了淘宝业务的快速增长,完成了数据库的垂直拆分、水平拆分,迁移到MySQL体系等主要工作。目前专注于无线数据领域。网络常用名NinGoo,个人博客:http://www.ningoo.net

周振兴 毕业于北京师范大学数学系,09年加入淘宝数据库团队负责MySQL运维管理工作,有丰富的MySQL性能优化、Troubleshooting经验,对MySQL主要模块的实现和原理有深入的研究,经历淘宝MySQL实例从30到3000的发展,对系统架构、高可用环境规划都有深入理解。个人博客:http://orczhou.com

彭立勋 2010年大学毕业后加入阿里巴巴运维部。作为一名MySQL DBA,在运维MySQL的过程中,对MySQL和InnoDB的一些功能和缺陷就进行了补充,编写了多主复制和数据闪回等补丁。目前在阿里集团核心系统研发部数据库组,专注于MySQL数据库相关的开发工作。后来一些补丁被MySQL之父Mony看中,成为MariaDB提交组(Maria-captains)成员,并且把多主复制,线程内存监控等补丁合并到了MariaDB 10.0版本。

翟卫祥 毕业于武汉大学,研究生阶段从事数据库相关研究。毕业后就职于阿里巴巴集团数据库技术团队至今,主要负责阿里内部MySQL代码分支维护,包括MySQL Bug Fix及新特性开发。对MySQL内核有一定的研究。

刘辉 2008年毕业于西安电子科技大学计算机系,硕士学位。2011年加入阿里巴巴集团数据库技术团队,花名希羽,MySQL内核开发工程师。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8548886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存