筛选条件

比较运算符

  • 等于: = ( 注意!不是 == )
  • 不等于: != 或 <>
  • 大于: >
  • 大于等于: >=
  • 小于: <
  • 小于等于: <=
  • 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. 【30天自制操作系统】day01:内存分布图

  2. 自己总结numpy用法

    最近用numpy比较多,边用边自己总结用法. 1. 数组 1.1 生成 m行 * n列 的随机数组 import numpy as np # 生成 m行*n列 的随机数组 # np.random.ra ...

  3. Choose the WinForms UI Type 选择 WinForms UI 类型

    In this lesson, you will learn how to change the UI Type of the WinForms application. By default, th ...

  4. English:2019100401_Suffix"ery"

    Ax_introduction source a Frech mean to "state,quality,act,place where etc" 1)After the ver ...

  5. LeetCode刷题191218

    好多天没有更新了,今天有空,刷一道. 算法第5题 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad"输出: ...

  6. ActiveMQ下载与安装(消息中间件JMS)

    下载 官方网站下载:http://activemq.apache.org/ 1.3.2安装(Linux) (1)将apache-activemq-5.12.0-bin.tar.gz 上传至服务器 (2 ...

  7. idea git提交代码步骤

    这位兄台已经写的很清楚了... 我这里直接给你们链接把... https://blog.csdn.net/u013452337/article/details/79956604 Git 初次提交,以及 ...

  8. Linux系统学习 十五、VSFTP服务—匿名用户访问(不推荐使用,不安全)

    匿名用户访问 基本配置: anonymous_enable          #允许匿名用户访问 anon_upload_enable       #允许匿名用户上传 anon_mkdir_write ...

  9. PC上装VM上装虚拟机

    1.虚拟机网卡选择桥接模式 2.查看本PC机的网络 3.到/etc/sysconfig/network-scripts,修改网卡,vi ifcfg-ens33 4.重新/etc/init.d/netw ...

  10. 在 Cocos2d-x 中添加自己的微博链接

    配置:OS X 10.10 + Xcode 6.0 + Cocos2d-x-3.2 一.Android 端代码 1.在 Cocos2dxActivity.java 中添加openUrl函数并导入响应包 ...