好记性不如烂笔头,很多书看过就忘,需要用到的时候想找又找不到,既然学习了就记录一下学习要点吧,希望对以后有用。
<一>关于NULL和CHAR –对应书本第四章(神秘的NULL)和令人讨厌的CHAR
(1)B-Tree索引不存储全为null的列(B-Tree聚簇索引可以储存全为null的列) 。
ps:可以理解为全为null值的列可以在表里存在,但是不会出存储在索引里面,写SQL时若限定条件为null则查询不走索引。
(2)在DDL建表中需要注意一些细节的null问题,比如修改列默认值是null,会影响后来插入的数据,再比如新增一列有默认值,会影响前面所有插入的数据。
(3)PL/SQL中char最大字节为32767,SQL中的char则是4000。
<二>第五章——报表开发之扩展group by
(1)Oracle中的merge 语句应该保证 on 中条件的唯一性。一般而言,若merge语句的关联字段互相有主键,merge的效率将比较高。
merge into t1
using t2
on ( t1.ord_code = t2.ord_code )
when matched then
update set t1.amount = t2.amount - t2.prefential
;
(2)rollup/cube/grouping sets
gro