前言

select top n 形式的语句可以获取查询的前几个记录,但是 mysql没有此语法,mysql用limit来实现相关功能。
LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。

  • 1.列出数学成绩前3名的学生(要求显示字段:学号,姓名, 科目,成绩)
  • 2.查询数学成绩第2和第3名的学生
  • 3.查询第3名到后面所有的学生数学成绩
  • 4.统计英语课程少于80分的,显示 学号id, 姓名,科目,分数
  • 5.查找每科成绩前2名,显示id, 姓名,科目,分数

万年不变学生表

有2张表,学生表(student)基本信息如下

科目和分数表(grade)

查询前3名

1.列出数学成绩前3名的学生(要求显示字段:学号,姓名, 科目,成绩)

select  *
from grade
where kemu = '数学'
order by score
desc
limit 3

先通过limit取出前三条记录,再结合student表查询

select  a.id, a.name, b.kemu, b.score
from student a, grade b
where a.id = b.id
and kemu = '数学'
order by score
desc
limit 3

查询第2-3名记录

2.查询数学成绩第2和第3名的学生

imit后面如果只写一个整数n,那就是查询的前n条记录;如果后面带2个整数n 和 m,那么第一个数n就是查询出来队列的起点(从0开始),第二个是m是统计的总数目
第2-3条记录,那么起点就是1, 第2-3名有2条记录,那么第二个参数就是2

select  a.id, a.name, b.kemu, b.score
from student a, grade b
where a.id = b.id
and kemu = '数学'
order by score
desc
limit 1, 2

备注:limit是按条数取的,名次一样的,也算一个记录。如果取第5-14的记录,那就是limit 4 10

查询第3到后面所有的

3.查询第3名到后面所有的学生数学成绩

select  a.id, a.name, b.kemu, b.score
from student a, grade b
where a.id = b.id
and kemu = '数学'
order by score
desc
limit 3, 10000

注意:有些资料上写的limit 3, -1 用-1代码最大值,这个是不对的,会报错,解决办法:随便写个非常大的整数

英语课程少于80分的人

4.统计英语课程少于80分的,显示 学号id, 姓名,科目,分数

SELECT a.id, a.name, b.kemu, b.score
FROM student a, grade b
WHERE a.id = b.id
AND b.kemu = '英语'
AND b.score < 80

统计每门课程不及格、一般、优秀

课程 不及格(<60) 一般(60<= x <=80) 优秀(>80)
SELECT b.kemu, (SELECT COUNT(*) FROM grade WHERE score < 60 and kemu = b.kemu) as 不及格,
(SELECT COUNT(*) FROM grade WHERE score between 60 and 80 and kemu = b.kemu) as 一般,
(SELECT COUNT(*) FROM grade WHERE score > 80 and kemu = b.kemu) as 优秀FROM grade b
GROUP BY kemu

查找每科成绩前2名

5.查找每科成绩前2名,显示id, 姓名,科目,分数

先按科目和分数查询

SELECT t1.id, t1.kemu,t1.score
FROM grade t1
ORDER BY t1.kemu,t1.score DESC

再查找每个每科前面2名

SELECT t1.id, a.name, t1.kemu,t1.score
FROM grade t1, student a
WHERE(SELECT count(*) FROM grade t2 WHERE t1.kemu=t2.kemu AND t2.score>=t1.score)<=2
and a.id = t1.id
ORDER BY t1.kemu,t1.score
DESC

如果第二名有重复的,也能一起查找出来

SELECT t1.id, a.name, t1.kemu,t1.score
FROM grade t1, student a
WHERE(SELECT count(*) FROM grade t2 WHERE t1.kemu=t2.kemu AND t2.score>t1.score)<2
and a.id = t1.id
ORDER BY t1.kemu,t1.score
DESC

关于面试总结3-SQL查询相关推荐

  1. 面试官:编写一个 SQL 查询,找出每个部门工资第二高的员工

    今天我们来看看大数据开发中row_number函数. 作为一名程序员,求职面试时时常会遇到需要编写一些基础的sql,编写sql这样做的目的主要是考验求职者的逻辑思维及编写sql基础能力.而row_nu ...

  2. SQL 查询总是先执行SELECT语句吗?你们都错了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 译者:无明 链接:infoq.cn/article/Oke8hgi ...

  3. MySQL番外篇:一条SQL查询语句是如何执行的?

    在面试的过程中,有的面试官会给出一条简单的SQL查询语句,让简单说一下执行的过程. SELECT * FROM emp where age=30; 以下问MySQL的基本架构图,从中可以看出SQL语句 ...

  4. 面试之数据库SQL编写实战案例

    好多同学在面试的过程中会碰到关于SQL查询的相关案例,让手写SQL语句,直接蒙蔽的不少哦,下面以几个面试题为例,谈谈SQL的编写,有题有答案,大家可以看看参考一下: 数据库的基本准备: /* Navi ...

  5. 删除表的sql命令是什么_【技术干货】30个最适合初学者的SQL查询

    毫无疑问,SQL或结构化查询语言是最流行的编程语言之一,尤其是因为它具有访问和修改数据库中数据的功能.SQL与数据库接口的基本用法是其流行的最重要原因. 关于SQL的最基本方面之一就是查询.基本上,S ...

  6. bigquery_到Google bigquery的sql查询模板,它将您的报告提升到另一个层次

    bigquery In this post, we're sharing report templates that you can build with SQL queries to Google ...

  7. postgre sql 括字段_【技术干货】30个最适合初学者的SQL查询

    毫无疑问,SQL或结构化查询语言是最流行的编程语言之一,尤其是因为它具有访问和修改数据库中数据的功能.SQL与数据库接口的基本用法是其流行的最重要原因. 关于SQL的最基本方面之一就是查询.基本上,S ...

  8. sql子查询示例_学习SQL:SQL查询示例

    sql子查询示例 In the previous article we've practiced SQL, and today, we'll continue with a few more SQL ...

  9. sql学习练习题_学习SQL:练习SQL查询

    sql学习练习题 Today is the day for SQL practice #1. In this series, so far, we've covered most important ...

  10. sqlserver 查询某个时间段执行sql语句_为什么 SQL 查询不是先执行SELECT语句?

    作者:Julia Evans    译者:无明    链接:infoq.cn/article/Oke8hgilga3PTZ3gWvbg 很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别 ...

最新文章

  1. C#中 int.TryParse 的用法
  2. 人人都是 DBA(V)SQL Server 数据库文件
  3. python协程实时输出_python协程
  4. 2019安恒七月月赛——MISC
  5. 多路串口服务器的应用及应用范围介绍
  6. VC++ MSDN中的 _beginthreadex与_endthreadex 的使用例子
  7. LeetCode 1296. 划分数组为连续数字的集合(map模拟)
  8. 在CentOS 7中使用Sendmail通过PHP发送邮件
  9. 创建私有CA及其签署和吊销证书
  10. 开启cdn后无法显示字体图标——CDN服务器跨域问题
  11. ipad上的html编辑器,它让我开始尝试在 iPad 上写作:MWeb for iOS 使用体验
  12. Flash网站的优缺点
  13. rman异机恢复 Linux _RAC至Win_Single Instance note
  14. android怎么用apk,手机如何安装APK应用教程 小白操作安卓系统教程 (全文)
  15. Chrome浏览器数据本地备份
  16. JQuery fadeOut()函数与remove()函数合用时不生效的解决办法
  17. 浅谈区块链技术应用场景
  18. <第六、七周>新店日记,shopee怎么怎么开广告?怎么定价比较合理?
  19. Linux TCP之sack(一)
  20. Advanced Archive Password Recovery下载

热门文章

  1. 集成微信登入遇到问题
  2. Pdg2Pic JPG质量系数
  3. win2003服务器允许下载.exe文件的方法
  4. 感谢默默无闻,致敬负重前行
  5. 计算机网络——第四章 网络层:数据平面
  6. 【WebRTC】回声抵消(aec、aecm)算法简介
  7. webrtc jitterbuffer--buffer草稿
  8. 验证tomcat安装成功
  9. 做一个优秀的时间管理者
  10. 雷军、马云、马化腾控股的公司