一、思维导图
二、重点区别
1、where 和 having 的区别?
- where 在分组之前进行限定,如果不满足条件,则不参与分组。
having在分组之后进行限定,如果不满足结果,则不会被查询出来。 - where 后不可以跟聚合函数,having可以进行聚合函数的判断。
2、delete和truncate在事务使用时的区别?
- delete可以回滚
- truncate不能回滚
3、脏读和幻读的区别?
- 脏读读到的是其他事务“更新”的数据
- 幻读读到的是其他事务“插入”的数据
4、存储过程和函数的区别?
- 存储过程可以有0或多个返回,适合做批量插入、批量更新
- 函数有且仅有1个返回,适合做处理数据后返回一个结果