筛选条件

比较运算符

  • 等于: = ( 注意!不是 == )
  • 不等于: != 或 <>
  • 大于: >
  • 大于等于: >=
  • 小于: <
  • 小于等于: <=
  • IS NULL
  • IS NOT NULL

逻辑运算符

  • 与:and
  • 或:or
  • 非:not

其它操作

  • 排序:order by

    • 正序:asc
    • 倒序:desc
    • 例:select * from students order by age desc ;
  • 限制:limit
    • 控制显示m条数据:limit m
    • 从下标为m的行数开始显示n条数据:limit m,n
    • 例:select * from students limit 3,2 ;
  • 去重:distinct
    • 例:select distinct * from students;
  • 模糊查询:like
    • 任意一个字符:_
    • 任意多个字符:%
    • 例:select * from students where name like '%abc_' ;
  • 范围查询
    • 连续范围: BETWEEN a AND b 相当于a <= value <= b
    • 间隔返回: IN
    • 例:select * from students where id in(1,3,5,7);
  • 判断空值:is null 或者 is not null
  • 别名:as

聚合分组

常用聚合函数

  • 统计个数:COUNT(column)
  • 最大值:MAX(column)
  • 最小值:MIN(column)
  • 求和:SUM(column)
  • 平均值:AVG(column)
  • 列出字段全部值:GROUP_CONCAT(column)

分组查询:group by

  • 在分组的情况下,只能够出现分组字段和聚合字段
  • 其他的字段没有意义,会报错!
  • Select 字段 from 表 group by 字段;
  • Select 字段,count(*) from 表 group by 字段;

聚合筛选:having

  • 加having条件表达式,可以对输出的结果做出限制
  • Select 字段1 from 表名 group by 字段1,字段2 having 字段2>=80;

执行顺序

  • 如果一个查询语句中同时包含了别名(as),聚合函数, where, having,那么他们的执行顺序是

    • 先是执行:where
    • 然后执行:聚合函数和别名
    • 最后执行:having

子查询

将一个查询的结果留下来用于下一次查询 ( select 中嵌套 select )

要求:

  • 1) 嵌套在查询内部
  • 2) 必须始终出现在圆括号内

例:

  • 求出学生的平均年龄

    • select avg(age) from students;
  • 查找出大于平均年龄的数据
    • select * from student where age > 19;
  • 将求出的平均年龄的SQL语句用于查找大于平均年龄的语句中
    • select * from students where age > (select avg(age) from students);

连接查询

内连接:inner join

  • 无条件内连接:

    • 无条件内连接,又名交叉连接/笛卡尔连接
    • 第一张表中的每一项会和另一张表的每一项依次组合
    • select * from 表1 inner join 表2
  • 有条件内连接:
    • 在无条件内链接的基础上,加上一个on子句
    • 当连接的时候,筛选出那些有实际意义的记录来进行组合
    • select * from 表1 as a inner join 表2 as b on a.id = b.id

外连接:{left | right} join

  • 左外连接: (以左表为基准)

    • 两张表做连接的时候,在连接条件不匹配的时候
    • 留下左表中的数据,而右表中的数据以NULL填充
    • select * from 表1 as a left join 表2 as b on a.id = b.id
  • 右外连接: (以右表为基准)
    • 对两张表做连接的时候,在连接条件不匹配的时候
    • 留下右表中的数据,而左表中的数据以NULL填充
    • select * from 表1 as a right join 表2 as b on a.id = b.id

MySql 筛选条件、聚合分组、连接查询的更多相关文章

  1. 【MySQL】条件查询之排序聚合分组分页查询

    排序查询 语法:order by 子句 order by 排序字段1 排序方式1 , 排序字段2 排序方式2... 排序方式: ASC:升序,默认的. DESC:降序. 注意: 如果有多个排序条件,则 ...

  2. MySQL全面瓦解12:连接查询的原理和应用

    概述 MySQL最强大的功能之一就是能在数据检索的执行中连接(join)表.大部分的单表数据查询并不能满足我们的需求,这时候我们就需要连接一个或者多个表,并通过一些条件过滤筛选出我们需要的数据. 了解 ...

  3. mysql(4)—— 表连接查询与where后使用子查询的性能分析。

    子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表 ...

  4. ORM( ORM查询13种方法3. 单表的双下划线的使用 4. 外键的方法 5. 多对多的方法 ,聚合,分组,F查询,Q查询,事务 )

    必知必会13条 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或 ...

  5. mysql学习之路_连接查询

    回顾 列属性:主键,自增长,唯一键. 关系:一对一,一对多,多对多 三层范式: 1NF:字段设计必须符合原子性 2NF:不存在部分依赖(没有复合主键) 3NF:不存在传递依赖(实体单独成表) 逆规范化 ...

  6. MySQL数据库实验三:连接查询

    实验三    连接查询 实验名称:连接查询(2课时) 一.实验目的 理解JOIN语句的操作和基本使用方法,掌握内连接.外连接.自身连接的概念和使用. 二.实验环境 是MS SQL SERVER 200 ...

  7. MySQL数据库:多表连接查询

    多表连接查询 注意:使用连接技术建议将表经行重命名! # explain 检索连接是否达标 # 内连接 # 语法1 from 表1 inner join 表2 on 主键字段=外键字段 [where ...

  8. MySQL系列--3.数据类型和连接查询

    1.存储引擎 数据创建,查询,更新和删除操作都是通过数据引擎来进行的.不同的存储引擎存储限制不同,支持不同的索引机制等. 查询数据库支持的存储引擎 MySQL 5.7.2支持的存储引擎有:InnoDB ...

  9. mysql在group by分组后查询第二条/第三条乃至每组中任意一条数据

    昨天老板让我查询项目中(众筹),没人刚发起感召后,前三笔钱的入账时间和金额,这把大哥整懵逼了,group by在某些方面是好使,但这次不能为我所用了,获取第一笔进账是简单,可以用group by 直接 ...

随机推荐

  1. AI行业精选日报_人工智能(12·18)

    百度Apollo升级自动驾驶平台,发布车路协同.智能车联两大平台 12 月 18 日消息,Apollo 发布了全球首个点到点城市自动驾驶开放能力.自动驾驶云.新一代智能交通解决方案.小度车载 2020 ...

  2. 【重学Node.js 第5篇】部署项目到腾讯云服务器

    课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://github.com/hellozhangran ...

  3. python接口测试中常见的两种接口依赖处理方式

    一.请求体的字段依赖 这种情况多数是在当前测试的接口,它的前置接口的请求体中的字段要拿来在当前的接口请求体中继续使用,比如修改用户信息的接口,该接口会使用到用户名的字段,该字段是由创建用户时的请求体中 ...

  4. 字节跳动——IT技术工程师面试题

    .自我介绍 .项目介绍 .争对个人项目进行提问 .场景模拟 .1如何知道用户的指定视频(类似于QQ发视频)的服务是正常的 .使用appum进行自动化测试 .使用bat脚本获取进程状态,然后定时发送em ...

  5. Flask 教程 第十一章:美化

    本文翻译自The Flask Mega-Tutorial Part XI: Facelift 这是Flask Mega-Tutorial系列的第十一部分,我将告诉你如何用基于Bootstrap用户界面 ...

  6. ArcGIS API for JavaScript小白入门

    简单理解就是:通过js调用arcgis相关的方法和通过html引入css等资源来展示地图,代码如下: <!DOCTYPE html> <html> <head> & ...

  7. iOS-----------安装fir-cli错误

    1.在终端执行  gem install fir-cli 一直提示错误:    You don't have write permissions for the /Library/Ruby/Gems/ ...

  8. Android 8.1 SystemUI虚拟导航键加载流程解析

    需求 基于MTK 8.1平台定制导航栏部分,在左边增加音量减,右边增加音量加 思路 需求开始做之前,一定要研读SystemUI Navigation模块的代码流程!!!不要直接去网上copy别人改的需 ...

  9. JMS消息中间件

    1.什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信.对于消息中 ...

  10. MongoDB学习笔记(五、MongoDB存储引擎与索引)

    目录: mongoDB存储引擎 mongoDB索引 索引的属性 MongoDB查询优化 mongoDB存储引擎: 目前mongoDB的存储引擎分为三种: 1.WiredTiger存储引擎: a.Con ...