SQL暑期进阶计划_2

今天继续SQL第五天:SQL中的子句

OUTLINE

  • where
  • starting with
  • order by
  • group by
  • having
  • 附加:where和having的区别

where

1、where使我们返回的数据更具有选择性

2、where是使用频率仅次于select 和 from的语句

starting with

1、starting with类似于 like子句
比如:select name,years,score from student where name like ‘Em%’
等同于:select name,years,score from student where name starting with(‘Em’)

2、个人觉得没有like好用,记住like就足够了~

order by

1、让查询输出的结果按照一定的规则进行显示

2、desc表示降序;asc表示升序(descending;ascending)

3、asc是默认选项

4、如果已知要排序的列是第一列,那么可以直接 order by 1 来代替输入的名字

group by

1、使用场景:当我们想知道每一类别东西的各种汇总情况(比如平均的、合计的等)时,我们就要想到group by,也只有group by可以做;

2、它可以对select的结果进行分组之后再应用汇总函数

3、它可以对多个列进行分组 group by col1,col2

having

1、我们需要对分组的数据进行限制
比如:我们想知道公司里面每个部门的平均薪资,我们就需要对职工所属的部门进行group by,求出其平均薪资
同时:我们又有一个想法,想知道哪些部门的平均工资到达2万以上的,于是我们就有了这样一个需求:求出每一个部门的平均薪资之后显示出那些工资大于2万的部门。这里就可以用having

而与此同时,对于where,它的语法规则是不能和汇总函数混合使用。而having允许你将汇总函数作为条件

2、having avg(salary) > 20,having avg(salary) in (12,25);

附加:where和having的区别

where —> 选定符合条件的行,进行行的过滤
having —> 为聚合结果指定条件,常跟group by 连用,但不仅只限于group by

区别:
① where 指定行所对应的条件
having指定组所对应的条件
② 语句执行效率
where 是先过滤不符合条件的行再进行排序或者其他操作
having是先进行排序、再分组、再聚合
③ where子句中不能用聚合函数
having子句可以

Where:
Select goods_name,goods_number from sw_goods where good_price > 100

Having:
Select goods_category_id,avg(goods_price) as ag from sw_goods group by goods_category
having Ag > 100

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值