mysql分组查询条件,MySql 筛选条件、聚合分组、连接查询

筛选条件

比较运算符

等于: = ( 注意!不是 == )

不等于: != 或 <>

大于: >

大于等于: >=

小于: <

小于等于: <=

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】条件查询之排序聚合分组分页查询

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

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

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

mysql学习之路&lowbar;连接查询

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

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

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

MySQL数据库:多表连接查询

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

MySQL系列--3&period;数据类型和连接查询

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

mysql在group by分组后查询第二条&sol;第三条乃至每组中任意一条数据

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

MySQL 进阶6&colon; 连接查询 &lpar;多表连接&rpar; &colon; 等值连接&sol;非等值连接 &sol;左右全连接&sol;内连接

#进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接 /* 含义: 当查询的字段来自于多个表时, 就会用到连接查询 一: sql 92标准 :等值连接 ,(#内连接) 1 ...

随机推荐

entity framework 新手入门篇(1&period;5)-lambda表达式与linq

在建立好了EF模型之后,先不着急使用它,在使用它之前,你还需要了解两个相关的技术,lambda表达式与linq. 作为微软C#语言中重要的语法糖-lambda表达式与LINQ,本质都是一个方法,以la ...

谈谈Java面向对象的三大特性

Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...

APP自适应的例子

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值