MySQL之二

1、MySQL中delete、truncate、drop之间的区别?

delete:DML语句、可回滚、可以是删除某一行或者是多行

truncate:DDL语句、不可回滚、清空表中的数据

drop:DDL语句、不可回滚、删除表、索引、权限等等都会删除

执行效率上:drop > truncate >> delete

 2、SQL的执行顺序?

 from  ....  left join ..... on ... where ...group by.... having..... selete ..... order by...limit....

 

 3、MySQL整体的执行流程

 

 4、where和having的区别?

执行顺序:from...where....group by(聚合函数 sum/avg/max/min/count)...haviing

  •  where是分组之前过滤,having是分组之后过滤
  • where不可以跟聚合函数,having后可以跟聚合函数
  • having后跟的字段必须有在select语句后面出现的字段

 

1)where 和 having 均可使用

select name from user where age >13;  会先判断条件再查询

select name from user  having age>13;  先查询所有再分

2)只能用where 不能用having

select name from user where name = "zhangsan" ;  正确

select name  from user  having age >18; 错误,筛选后只有name字段,没有age

3)只能用having,不能用where

select AVG(age) as avg from user where avg >18; 正确的

select AVG(age) as avg from user having avg >18;  错误的

注意:where后面跟的是数据库里的字段,不能跟聚合函数,因为它在聚合函数之前就执行了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值