徐文艺于2022年3月7日河南省郑州市发布
联系我 18838114677
电子邮箱congratulationxwy@aliyun.com
文章写于2014年8月8日,于当时工作单位业余时间写,一直处于草稿状态,今天也没做任何其它修改完善,发布,有很多不完整不影响当时的情况。
自毕业工作到现在,算来自己接触Oracle数据库基本也有7年时间了,虽然期间也有接触其他数据库,比如SQL SERVER / My SQL等,但期间一直没间断使用Oracle(这里就不讨论版权的问题,鉴于国内目前的实际情况,另外工作期间使用的为单位正版oracle授权),自己也有不少心得体会,一直没时间总结,现在还是挤点时间大致记录下自己的心得吧。
(一)、函数部分的分析心得
1、distinct
了解使用过的人的第一感觉 - 去除重复数据的函数,这也是我一直以来的理解。
2、in 与 exist
为什么把这两个函数单独列出来说呢? 因为这两个函数之前由于不是特别清楚起具体使用场景,自己实际工作中使用不当导致系统频繁当机。由于数据量小的时候没有明显的差异,但当数据库累计到一定程度,他们的性能差异不是一星半点。
3、分析函数partition row_number() over()
4、集合函数(求交集、并集等)
union 与 union all
这个相比大部分人也都了解,两个的主要的区别是否可以去重。
minus
5、instr 与 like
想必所有研发的朋友都使用过模糊查询,但对于instr又有多少人注意使用过呢? 那那么oracle内置的instr与like相比又有那些优点呢?
6、日期函数to_date/ format
7、sum
有些情况下,我们不得不在sql中进行一些基本的数学运算(比如加减乘除),如果牵涉到有小数点精度的要求要怎么处理呢?
(二)、关于触发器、存储过程、函数、索引、序列号、类型结构体等
1、函数(自定义函数)function
2、存储过程produce
3、触发器trigger
4、序列号sequence
5、索引index
6、类型结构体 type
类型结构体其实和自定义函数是相同的东西,不过在oracle内部区分处理。
(三)、关于常用的左/右连接
(四)、关于导入导出(EXP/IMP)
(五)、关于分区、用户、表空间、权限
想想谈这块儿有点班门弄斧,只是略知皮毛,平时基本也很少使用,但感觉这块儿确实关键,特别是目前大数据时代,分区分布式数据的大规模应用。
(六)、关于归档日志的处理