温故知新-sql笔记1
- 最佳实践
1.sql语句中逗号放在下一句开头而非句子结尾
- 关于NULL
ANSI_NULL为ON时,比较NULL值不能用<> NULL,用 is not NULL
- where语句
1.contains 只对设置全文检索的列有效
2.操作符顺序 not and or
3.索引 not条件中不会用到索引,or条件中所有条件都索引或者都不索引
4.like条件中 '_'代表一个字符 '[]'匹配一系列字符 [abcd] [a,b,c,d] [a-d] '^'排除字符 [^a-d]
5.like中通配符查询不适用索引
6.between and 包含边界值
- Join
1.default join type :inner join
2.outer join: left right full
3.CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘起来
- group by
1.CHECKSUM_AGG和ROLLUP CUBE GROUPING SETS不兼容
2.结果中返回列较多时,避免实用with cube,提高性能
3.groupping set 和union all 多个group by 效果相同,更加简洁
4.where和having性能比较注意不同情况