《剑破冰山-Oracle开发艺术》学习记录

本文记录了学习《剑破冰山-Oracle开发艺术》的心得,主要探讨了Oracle中NULL与CHAR类型的处理,包括B-Tree索引对NULL的处理、DDL建表的NULL细节以及PL/SQL中CHAR的限制。此外,详细解析了报表开发中的扩展GROUP BY操作,如ROLLUP、CUBE、GROUPING SETS及其相关函数的使用。最后,阐述了Oracle的自动类型转换规则,涉及INSERT、UPDATE、SELECT语句以及不同类型间的转换细节。
摘要由CSDN通过智能技术生成
好记性不如烂笔头,很多书看过就忘,需要用到的时候想找又找不到,既然学习了就记录一下学习要点吧,希望对以后有用。

<一>关于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值