关于面试总结3-SQL查询
前言
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查询相关推荐
- 面试官:编写一个 SQL 查询,找出每个部门工资第二高的员工
今天我们来看看大数据开发中row_number函数. 作为一名程序员,求职面试时时常会遇到需要编写一些基础的sql,编写sql这样做的目的主要是考验求职者的逻辑思维及编写sql基础能力.而row_nu ...
- SQL 查询总是先执行SELECT语句吗?你们都错了!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 译者:无明 链接:infoq.cn/article/Oke8hgi ...
- MySQL番外篇:一条SQL查询语句是如何执行的?
在面试的过程中,有的面试官会给出一条简单的SQL查询语句,让简单说一下执行的过程. SELECT * FROM emp where age=30; 以下问MySQL的基本架构图,从中可以看出SQL语句 ...
- 面试之数据库SQL编写实战案例
好多同学在面试的过程中会碰到关于SQL查询的相关案例,让手写SQL语句,直接蒙蔽的不少哦,下面以几个面试题为例,谈谈SQL的编写,有题有答案,大家可以看看参考一下: 数据库的基本准备: /* Navi ...
- 删除表的sql命令是什么_【技术干货】30个最适合初学者的SQL查询
毫无疑问,SQL或结构化查询语言是最流行的编程语言之一,尤其是因为它具有访问和修改数据库中数据的功能.SQL与数据库接口的基本用法是其流行的最重要原因. 关于SQL的最基本方面之一就是查询.基本上,S ...
- bigquery_到Google bigquery的sql查询模板,它将您的报告提升到另一个层次
bigquery In this post, we're sharing report templates that you can build with SQL queries to Google ...
- postgre sql 括字段_【技术干货】30个最适合初学者的SQL查询
毫无疑问,SQL或结构化查询语言是最流行的编程语言之一,尤其是因为它具有访问和修改数据库中数据的功能.SQL与数据库接口的基本用法是其流行的最重要原因. 关于SQL的最基本方面之一就是查询.基本上,S ...
- sql子查询示例_学习SQL:SQL查询示例
sql子查询示例 In the previous article we've practiced SQL, and today, we'll continue with a few more SQL ...
- sql学习练习题_学习SQL:练习SQL查询
sql学习练习题 Today is the day for SQL practice #1. In this series, so far, we've covered most important ...
- sqlserver 查询某个时间段执行sql语句_为什么 SQL 查询不是先执行SELECT语句?
作者:Julia Evans 译者:无明 链接:infoq.cn/article/Oke8hgilga3PTZ3gWvbg 很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别 ...
最新文章
- C#中 int.TryParse 的用法
- 人人都是 DBA(V)SQL Server 数据库文件
- python协程实时输出_python协程
- 2019安恒七月月赛——MISC
- 多路串口服务器的应用及应用范围介绍
- VC++ MSDN中的 _beginthreadex与_endthreadex 的使用例子
- LeetCode 1296. 划分数组为连续数字的集合(map模拟)
- 在CentOS 7中使用Sendmail通过PHP发送邮件
- 创建私有CA及其签署和吊销证书
- 开启cdn后无法显示字体图标——CDN服务器跨域问题
- ipad上的html编辑器,它让我开始尝试在 iPad 上写作:MWeb for iOS 使用体验
- Flash网站的优缺点
- rman异机恢复 Linux _RAC至Win_Single Instance note
- android怎么用apk,手机如何安装APK应用教程 小白操作安卓系统教程 (全文)
- Chrome浏览器数据本地备份
- JQuery fadeOut()函数与remove()函数合用时不生效的解决办法
- 浅谈区块链技术应用场景
- <第六、七周>新店日记,shopee怎么怎么开广告?怎么定价比较合理?
- Linux TCP之sack(一)
- Advanced Archive Password Recovery下载