DQL查询操作(条件查询,分组查询,排序查询,分页查询)

文章目录

  • DQL查询操作(条件查询,分组查询,排序查询,分页查询)
    • 一.查询语法
    • 二.基础查询
    • 三.条件查询
    • 四.排序查询
    • 五.分组查询
    • 六.分页查询

一.查询语法

SELECT字段列表
FROM表名列表
WHERE条件列表
GROUP BY分组字段
HAVING分组后条件
ORDER BY排序字段
LIMIT分列限定;

二.基础查询

1.语法

SELECT 字段列表 FROM 表名;

2.例子

SELECT * FROM 表名;
# 查询所有的数据

3.去重复记录

SELECT DISTINCT 字段列表 FROM 表名;

4.起别名

AS

三.条件查询

1.条件查询语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;

2.条件

>           大于
<            小于
>=          大于等于
<=          小于等于
=          等于
<>  /  !=    不等于
BETWEEN...AND...在这份范围内都包括
IN (...)    多选一
LIKE        模糊查询(_单个任意字符  %多个任意字符)
IS NULL     是空
SI NOT NULL 不是空
AND / &&    且
OR / ||     和
NOT / !     非,不是

3.条件查询的使用举例

 # 条件查询
-- 查询id> 80的学员信息
SELECT *FROM employee WHERE id>80;--     查询攻击力>= 100 的学员的信息
SELECT *FROM employee WHERE `攻击力`>=100;-- 查询攻击力>=100 并且 小于等于120的学员的信息
# 写法越来越简单
SELECT *FROM employee WHERE `攻击力`>100 && `攻击力`<=120;
SELECT *FROM employee WHERE `攻击力`>100 AND `攻击力`<=120;
SELECT *FROM employee WHERE `攻击力` BETWEEN 100 AND 120;-- 查询生日在1911-12-12 到 1940-10-10 之间的学员的信息SELECT *FROM employee WHERE birthday >'1911-12-12' && birthday<'1940-10-10';
SELECT *FROM employee WHERE birthday BETWEEN '1911-12-12'AND'1940-10-10';-- 查询攻击力等于100的学员的信息
SELECT *FROM employee WHERE `攻击力`=100;-- 查询id 不等于100的学员的信息
SELECT *FROM employee WHERE id !=100;
SELECT *FROM employee WHERE id <>100;-- 查询年龄id=100 或者 Salary =9000 或者攻击力等于101的学员
-- 注意||符号不推荐使用, 推荐使用or 来代替||
SELECT * FROM employee WHERE id = 100 ||Salary=9000||`攻击力`=101;
SELECT * FROM employee WHERE id =100 OR Salary =9000 OR `攻击力` =101;  SELECT * FROM employee WHERE id IN (100,88,101);-- 查询 image 为null 的学员
# 注意 null 值不能使用 =  != 来比较,需要使用 is   或 is not来进行比较
SELECT * FROM employee WHERE `resume` IS  NULL;SELECT * FROM employee ;

4.模糊查询

-- 模糊查询/* 通配符:1. _  :代表单个任意字符2. %  :代表任意个数字符*/-- 查询姓`温` 的学员的信息-- 查询第二个字是 `六` 的学员的信息-- 查询名字中包含 `云` 的学员的信息SELECT * FROM employee WHERE user_name LIKE '温%'; SELECT * FROM employee WHERE user_name LIKE '_合%';SELECT * FROM employee WHERE user_name LIKE '%云%';

四.排序查询

当需要对某一列进行升序或者降序的排列时,可使用排序查询

1.语法

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1,排序方式1;

2.排序方式:

ASC :升序
DESC :降序

注:如果有多个排序条件时,当前一个条件值一样时,才会跟据第二个条件进行排序。

3.排序查询实例

-- 排序查询/*排序方式:ASC :升序排列(默认)DESC :降序排列*/
-- 查询学生信息,按照id升序排列
SELECT * FROM employee ORDER BY id ASC;
-- 查询学生信息,按照Salary 进行降序排列
SELECT *FROM employee ORDER BY `Salary` DESC;
-- 查询学生信息 ,按照id进行升序排列,如果id相同则按照Salary升序排列
-- 当有多个条件时,只有当前一个条件相等时才会启用后一个条件
SELECT * FROM employee ORDER BY id ASC , `Salary`DESC;-- 分组查询# 首先创建表CREATE TABLE stud (id int,`name` VARCHAR(15),sex char(1),math int,English int);

五.分组查询

1.其实就是把表中的数据按照某一个条件给其归类,然后会对某一类进行统计和分析。

2.语法

SELECT 字段列表 FROM 表名 WHERE 分组前条件限定 GROUP BY 分组字段名 HAVING 分组后条件过滤;
# 字段列表的要求:聚合函数或分组字段

3.分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

4.where与having的区别:

  • 执行时机不同:where是分组之前进行限定,不满足where条件就不会参组分组,而having是分组之后对结果进行过滤。
  • 可判断的条件不一样:where不能对聚合函数进行判断,而having可以。

5.执行顺序

  • where >聚合函数>having

6.实例演示

/*分组函数SELECT 字段列表 FROM 表名    WHERE 分组前条件限定 GROUP BY 分组后条件过滤 */-- 查询男同学女同学各自的数学平均分SELECT sex, AVG(math)FROM stud GROUP BY sex;-- 查询男同学女同学各自的数学平均分,以及各自人数SELECT sex, AVG(math),COUNT(*) FROM stud GROUP BY sex;-- 查询男同学和女同学各自的数学平均分,以及各自的人数,要求:分数低于70分的不参与分组SELECT sex, AVG(math),COUNT(*) FROM stud WHERE math>70 GROUP BY sex;-- 查询男同学和女同学各自的数学平均分,以及各自的人数,要求:分数低于70分的不参与分组,分组之后人数大于3SELECT sex, AVG(math),COUNT(*) FROM stud WHERE math>70 GROUP BY sex HAVING  COUNT(*)>3;-- 注:where 与having的区别:-- 1执行实际不一样,where是分组之前进行限定,不满足where条件就不参与分组,而having是分组之后对结果的过滤-- 2可判断的条件不一样:where不能对聚合函数进行判断,而having可以

六.分页查询

1.分页查询的语法

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
  • 起始索引:从0开始
  • 计算公式:起始索引=(当前页码-1)*每页显示的条数

2.tips:

  • 分页查询limit是MySQL数据库的方言
  • Oracle分页查询使用的是rownumber
  • SQL server 分页查询使用的是 top

3.分页查询的实例

-- 分页查询
-- 从0开始查询,查询三条数据
SELECT * FROM stud LIMIT 0,3;
-- 每页显示三条数据,查询第一页数据
SELECT * FROM stud  LIMIT 0,3;
-- 每页显示3条数据,查询第二页的数据
SELECT *FROM stud LIMIT 3,3;
-- 每页显示3条数据,查询第三页的数据
SELECT * FROM stud LIMIT 6,3;

SQL条件查询,分组查询,排序查询,分页查询相关推荐

  1. MySQL 排序、分页查询、聚合查询

    文章目录 1. 排序 2. 分页查询 3. 聚合查询 3.1 分组聚合 GROUP BY 练习 LeetCode 176. 第二高的薪水 练习 LeetCode 177. 第N高的薪水 练习 Leet ...

  2. oracle不排序分页结果随机,关于ORACLE排序后分页查询出现反复数据的探讨

    关于ORACLE排序后分页查询出现重复数据的探讨 最近在帮一个同事调试BUG,有一个条BUG是这样描述的: 所有有排序功能的列表,当其中某一字段当前页面内容一致时,翻页就有误. 页码改变,列表内容不变 ...

  3. mysql分页查询所有数据库_MySQL 数据库 分页查询/聚合查询

    引言 在本篇博客简单介绍一下分页查询以及聚合查询简单操做.html 分页查询 在MySQL中,分页查询通常都是使用limit子句实现,limit子句声明以下:mysql SELECT * FROM t ...

  4. java oracle分页查询语句_oracle分页查询语句,java得到分页查询语句的方法

    oracle分页查询语句 select * from ( select a.*, rownum rn from (select * from table_name) a where rownum &l ...

  5. mysql分页查询出租房屋信息_分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)...

    分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse ...

  6. JAVA中oracle分页语句,oracle分页查询语句,java得到分页查询语句的方法

    oracle分页查询语句 select * from ( select a.*, rownum rn from (select * from table_name) a where rownum &l ...

  7. SpringData JPA条件查询、排序、分页查询

    前言 在刚开始学习的时候,在dao的定义的接口需要继承JpaRepository<T, ID>接口和JpaSpecificationExecutor< T >接口,但是一直以来 ...

  8. oracle数据库分页查询慢,Oracle数据库中分页查询中排序及效率问题

    原始未分页查询Sql代码如下: select ROWNUM rn, t.id ID, o.name YYB,u.name XM, t.MC from tZDYSX t,tuser u,lborgani ...

  9. ElasticSearch学习篇2_Rest格式操作(索引、文档)、文档的简单操作(增、删、改、查)、复杂查询操作(排序、分页、高亮)

    目录 关于索引的基本操作 声明索引.字段类型 获取索引信息举栗 删除索引举栗 拓展命令 关于文档的基本操作 插入文档 删除文档 修改文档 获取文档 根据id获取 根据条件获取 带json参数体的查询( ...

  10. oracle分页查询前10条,Oracle查询前十条记录及分页查询(第5条到第10记录)

    Oracle查询前10条记录及分页查询(第5条到第10记录) 如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识 ...

最新文章

  1. 如何在JavaScript中切片和拼接数组
  2. 计算机进制转换图,计算机等级考试进制转换及常用函数
  3. linux服务器垃圾箱,如何将Linux rm命令删除的文件放入垃圾箱
  4. vim的tab键设定
  5. javascript 通过地址获取经纬度 get lat long from address
  6. mysql 迁移 乱码_迁移Windows下的MySQL时字符乱码问题
  7. linux 后台启动
  8. 类中不写成员函数易犯错误模型
  9. 笨办法学Python习题11 提问
  10. SpringCloud教程合集
  11. c语言判断算符优先级,C语言算符优先级(精华)
  12. NosqlBooster For MongoDB解决License问题
  13. 编程修养-C语言篇(二)
  14. 求n+nn+nnn+nnnn+nnnnn+nnnnnn
  15. github上提交pr的完整流程
  16. Trafodion事务管理简述
  17. android仿简书编辑器,类似zine,简书的app移动编辑器-Light Seven
  18. 2021-09-28 竞斗云 2.0 刷机 PandoraBox 固件不能开启 802.11r问题处理
  19. 为什么要报考消防工程师?消防工程师证书有什么用呢?
  20. 从零构建FLINK整合Drools动态规则实时运营系统(项目案例)第1篇(项目介绍篇)

热门文章

  1. 长江流向图_长江黄河流经省份图 (是图来的哦)
  2. python爬取json数据与实际不一样_Python如何爬取Json数据
  3. 【数据结构实验】链表的创建与功能的实现
  4. 利用计算机进行会计造假的案例分析,账簿会计造假的形式和识别技巧
  5. 在建设和培养技术团队,要有前瞻性
  6. Spring bean是什么?
  7. emis相关的一些备忘
  8. 如何将多个bin文件合成一个bin文件?(二)
  9. Mysql中事务及事务隔离级别详解
  10. Google Earth揭密中国军事设施