前言

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的用法相关推荐

  1. Python学习日志16 - 数据库SQL查询

    Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...

  2. Mysql常规27种sql查询语句

    Mysql常规27种sql查询语句 话不多说,直接上干货 1.查询部分列 select 列名 from 表名 例:员工表中查询员工编号.名字.邮箱 select employee_id,employe ...

  3. 视频教程-数据库SQL查询,最佳案例讲解-SQL Server

    数据库SQL查询,最佳案例讲解 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ¥19.00 立即订阅 ...

  4. java metadata 使用_java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

    一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMet ...

  5. 预编译sql查询语句_频繁查询重新编译– SQL查询性能杀手–检测

    预编译sql查询语句 previous part of this article, we presented query recompilation basics. We explained when ...

  6. json数据条件查询,json数据sql查询中文乱码

    json 解析  分页  条件查询 从数据库中查询出来的json数据乱码可以使用 json_extract(json字段,'$') json字段 这个是json数据的条件查询 <sql id=& ...

  7. linux 查询库版本,数据库版本查询(linux数据库版本查询)

    数据库版本查询(linux数据库版本查询) 2020-07-24 11:16:48 共10个回答 sqlserver的方法一:在查询分析器中输入"Select@@Version"并 ...

  8. 【SQL中limit的用法】

    SQL中limit的用法 说明:limit子句用于限制查询结果返回的数量,常用于分页查询. 用法:[select * from tableName limit i,n ] 参数:tableName: ...

  9. mysql数据库实验3查询_mysql数据库(3)-查询

    数据库设计规范 查询 创建数据库.数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1 ...

最新文章

  1. LTE的随机接入过程解析
  2. 产品经理的高阶能力:商业思维基于商业画布的研习方法论
  3. Linux 0.00 代码解析(一)
  4. CG CTF WEB 伪装者
  5. Rxjava2自我·解惑
  6. 接口与抽象类区别和接口jdk8新特性
  7. axis2 wsdl2java 报错_解决webService+axis2生成的wsdl文件有两个Bindings/Endpoint 的问题
  8. php面试题汇总一(基础篇附答案)
  9. SpringBoot(十四)_springboot使用内置定时任务Scheduled的使用(一)
  10. 如何找一个程序员做男朋友?
  11. 几个比较实用的网址链接
  12. ado连接mysql_ADO连接各种数据库的基本方法
  13. 爬虫之js加密破解抓取网易云音乐评论生成词云
  14. 黑客入门(超级详细版)
  15. debian 更换源 使用国内源 配置方法
  16. html代码word,Html To Word(一)(示例代码)
  17. 蒙德里安森林算法_DP没入门就入土
  18. 安卓控件使用系列2:TextView实现图文(图片和文字)混排
  19. 【ArcGIS】01 水文流域提取
  20. 应用安全的创新,Apiiro和WABBI

热门文章

  1. MSP430单片机的端口介绍
  2. 数显之家快讯:【SHIO世硕心语】一位价值百万钟点工阿姨给我上的一堂课!
  3. A、B、AB和D类功放对比
  4. Generic Array Creation,泛型数组创建时提示出错
  5. 江铠同疑证实李湘怀二胎:小恬妞要当姐姐啦
  6. 本年度钢铁行业发展趋势
  7. OSGI:简述对OSGI的认识
  8. 函数设计的两个原则(单一出口、一专多能)和实例
  9. jQuery放大镜 实现图片的放大
  10. 策略验证_指标买点分析技法_运用boll布林线指标选择买点