MySQL复习(五)

0、在 SQL 中,使用等号来比较值时,NULL 与任何其他值(包括 NULL 本身)进行比较的结果都是 UNKNOWN,而不是 true 或 false。

1、注意是小数还是百分比
2、注意有无至少
3、GROUP BY的大性质,真是大性质啊 
4、用following是要加between的
sum(free = 1) OVER (ORDER BY seat_id ASC rows 1 following)【错】
sum(free = 1) OVER (ORDER BY seat_id ASC rows between 0 preceding and 1 following)【对】
5、min()函数不受NULL值影响
在使用`MIN()`函数时,如果被处理的列中包含NULL值,通常情况下不会引发错误。`MIN()`函数会忽略NULL值并计算非NULL值中的最小值。
6、LEAD()函数扩展
lead(x, 1, null)函数用于获取x列下一行的值(按照x列的顺序进行排序),如果下一行不存在则返回null。
7、mysql居然没有full join【震惊】
8、sum结合case when
9、count和sum用的时候注意区分
10、注意如果有NULL值的对比
id not in (select p_id from tree)时, 因为p_id有null值, 返回结果全为false, 于是跳到else的结果, 返回值为inner. 所以在答案中,leaf结果从未彰显,全被inner取代.
当你判断任意值a != null时, 官方说, "You cannot use arithmetic comparison operators such as =, <, or <> to test for NULL", 任何与null值的对比都将返回null. 因此返回结果为否,这点可以用代码 select if(1 = null, 'true', 'false')证实.
11、条件不相交的UNION 可以尝试case when
12、用count(id=1)不如用sum(id=1)
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值