一些你可能不知道的sql查询语句的知识点

目录

1、round函数

2、什么时候用having 不用where

3、where,group by,having,order by执行顺序和编写顺序

1.group by 和where

2.group by 和having

3.group by 和order by

【二】使用having字句对分组后的结果进行筛选,语法和where差不多:having 条件表达式

【三】当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序: 

4、union


1、round函数

sql中round函数的用法:在sql中能够使用round函数用把数值字段舍入为指定的小数位数,

在SELECT语句中使用,使用语法为“SELECT ROUND(column_name,decimals) FROM table_name;”,这里column_name是指“要舍入的字段”,decimals是指“规定要返回的小数位数”。

2、什么时候用having 不用where

因为 where 的操作对象是一条记录,比如说当一条记录xxx时,在什么条件下可以用 where

但是涉及到多条记录时,比如说这里的对象是从一组一组中再过滤到"平均问问题书小于 5" 的小组这种情况下,where 就不适用了

此时,提供了 having 的关键词。

where 从记录中法过滤出某一条记录

having 可以从一组组记录中过滤掉其哪几组

3、where,group by,having,order by执行顺序和编写顺序

【一】数据分组(group by ):

1.group by 和where

select 列a,聚合函数(聚合函数规范) from 表明 where 过滤条件 group by 列a 

2.group by 和having

select 列a,聚合函数(聚合函数规范) from 表明 group by 列a  having 过滤条件 ;

3.group by 和order by

select 列a,聚合函数(聚合函数规范) from 表明 group by 列a  order by  条件;

【二】使用having字句对分组后的结果进行筛选,语法和where差不多:having 条件表达式

需要注意having和where的用法区别: 1.having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。 2.where肯定在group by 之前,即也在having之前。 3.where后的条件表达式里不允许使用聚合函数,而having可以。 4.having后只能跟group by后边字段条件 或者 非group by字段的聚合函数条件(按组查询);

【三】当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序: 

Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。 

SELECT的语法顺序就是起执行顺序

FROM WHERE (先过滤单表/视图/结果集,再JOIN) GROUP BY HAVING (WHERE过滤的是行,HAVING过滤的是组,所以在GROUP之后) ORDER BY

4、union

union联合的结果集不会有重复值,如果要有重复值,则使用union all

union会自动压缩多个结果集合中重复的结果,使结果不会有重复行,union all 会将所有的结果共全部显示出来,不管是不是重复。

union:会对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序。

union all:对两个结果集进行并集操作,包括重复行,不会对结果进行排序。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值