body{
text-align:left;
width:80%;
margin:10px 100px;
}

前言

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

数据库 | SQL查询&LIMIT的用法的更多相关文章

  1. Data Base 常用数据库之top/limit/rownum用法

    常用数据库之top/limit/rownum用法 一.常用数据库: sql server: select top 10 from users where status=1 mysql: select ...

  2. [数据库] SQL查询语句表行列转换及一行数据转换成两列

    原文来自:http://blog.csdn.net/Eastmount/article/details/50559008 本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两 ...

  3. WordPress 常用数据库SQL查询语句大全

    在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...

  4. MySql数据库 sql查询增加序号的伪列

    在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n 例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢? ...

  5. 数据库SQL中Like的用法总结

    最先做项目多次用到LIKE语句,下面总结下经常用到了. 语法 match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ] 参数 ...

  6. SQL关于limit的用法

    SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset    在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时 ...

  7. 数据库SQL 查询

    查询 1.简单查询 select * from info(表名)   --查所有数据 select  code(列名),name(列名)  from 表名        --查指定列的数据 selec ...

  8. Yii2 数据库sql查询

    Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); //返回所有数据: User::findOne($id); //返回 主键 id=1 的一条数据(举个例子 ...

  9. 数据库sql语句limit区别

    注意:并非所有的数据库系统都支持 SELECT TOP 语句. MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取. SQL Server / MS ...

随机推荐

  1. 【Struts2】进阶

    一.Action处理请求参数 1.1 属性驱动 1.2 模型驱动 1.3 扩展 将数据封装到List集合 将数据封装到Map集合 二.类型转换 2.1 自定义类型转换器: 1.创建一个自定义类型转换器 ...

  2. OpenCV视觉处理核心课程

    OpenCV视觉处理核心课程 观看链接:https://www.bilibili.com/video/av29500928?from=search&seid=47008639320014639 ...

  3. linux usb驱动记录(二)

    三.usb设备的识别过程 在这里梳理一下上一篇博客中的内容:(这张图来自https://blog.csdn.net/lizuobin2/article/details/51931161) 上一篇博客刚 ...

  4. input子系统驱动

    input子系统驱动 框架分析 核心层 文件为:/drivers/input/input.c: 首先找到入口函数为**static int __init input_init(void)**,在该函数 ...

  5. 将excel表格导入到DataGridView

    using System.Data.OleDb; 添加一个button控件,一个textBox控件,用于显示选择路径  private void loadxls() { String fileName ...

  6. 团队第三次作业:Alpha版本发布

    这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 众志陈成 这个作业的目标 通过团队协作了解软件开发的大致流程,并在这个过程中体会调整与优化程序的方法,为以后真实的软件开发奠 ...

  7. Python&Selenium 数据驱动【unittest+ddt+xml】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用xml文件作为数据文件作为测试输入 二.xml文件 <?xml version ...

  8. Redis入门(三)——主从服务器配置

    当数据量变得庞大的时候,读写分离还是很有必要的.同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能.redis提供了一个master,多个sl ...

  9. solr 中文分词相关(转载)

    smartcn和ik的对比,来自http://www.cnblogs.com/hadoopdev/p/3465556.html 一.引言: 年的时候,就曾经有项目涉及到相关的应用(Lunce构建全文搜 ...

  10. Java实现从服务器下载文件到本地的工具类

    话不多说,直接上代码...... import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServlet ...