mysql查询limit_数据库 | SQL查询LIMIT的用法
前言
select top n 形式的语句可以获取查询的前几个记录,但是 mysql没有此语法,mysql用limit来实现相关功能。
LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
万年不变学生表
有2张表,学生表(student)基本信息如下
科目和分数表(grade)
查询前3名
列出数学成绩前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名记录
limit后面如果只写一个整数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到后面所有的
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分的人
统计英语课程少于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名
查找每科成绩前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
mysql查询limit_数据库 | SQL查询LIMIT的用法相关推荐
- Python学习日志16 - 数据库SQL查询
Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...
- Mysql常规27种sql查询语句
Mysql常规27种sql查询语句 话不多说,直接上干货 1.查询部分列 select 列名 from 表名 例:员工表中查询员工编号.名字.邮箱 select employee_id,employe ...
- 视频教程-数据库SQL查询,最佳案例讲解-SQL Server
数据库SQL查询,最佳案例讲解 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ¥19.00 立即订阅 ...
- java metadata 使用_java 查询oracle数据库所有表DatabaseMetaData的用法(详解)
一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMet ...
- 预编译sql查询语句_频繁查询重新编译– SQL查询性能杀手–检测
预编译sql查询语句 previous part of this article, we presented query recompilation basics. We explained when ...
- json数据条件查询,json数据sql查询中文乱码
json 解析 分页 条件查询 从数据库中查询出来的json数据乱码可以使用 json_extract(json字段,'$') json字段 这个是json数据的条件查询 <sql id=& ...
- linux 查询库版本,数据库版本查询(linux数据库版本查询)
数据库版本查询(linux数据库版本查询) 2020-07-24 11:16:48 共10个回答 sqlserver的方法一:在查询分析器中输入"Select@@Version"并 ...
- 【SQL中limit的用法】
SQL中limit的用法 说明:limit子句用于限制查询结果返回的数量,常用于分页查询. 用法:[select * from tableName limit i,n ] 参数:tableName: ...
- mysql数据库实验3查询_mysql数据库(3)-查询
数据库设计规范 查询 创建数据库.数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1 ...
最新文章
- LTE的随机接入过程解析
- 产品经理的高阶能力:商业思维基于商业画布的研习方法论
- Linux 0.00 代码解析(一)
- CG CTF WEB 伪装者
- Rxjava2自我·解惑
- 接口与抽象类区别和接口jdk8新特性
- axis2 wsdl2java 报错_解决webService+axis2生成的wsdl文件有两个Bindings/Endpoint 的问题
- php面试题汇总一(基础篇附答案)
- SpringBoot(十四)_springboot使用内置定时任务Scheduled的使用(一)
- 如何找一个程序员做男朋友?
- 几个比较实用的网址链接
- ado连接mysql_ADO连接各种数据库的基本方法
- 爬虫之js加密破解抓取网易云音乐评论生成词云
- 黑客入门(超级详细版)
- debian 更换源 使用国内源 配置方法
- html代码word,Html To Word(一)(示例代码)
- 蒙德里安森林算法_DP没入门就入土
- 安卓控件使用系列2:TextView实现图文(图片和文字)混排
- 【ArcGIS】01 水文流域提取
- 应用安全的创新,Apiiro和WABBI