Oracle拾遗
这次学习Oracle视频,还是学到了不少东西的。
首先,这是一次系统的学习,对自己的知识体系是一次查漏补缺,以前只是简单的会用,现在看到出的问题,很容易就可以想到是哪一部分出了问题。尤其是现在:新系统集中测试的时候,其作用更是明显。
这次视频,从Oracle安装开始讲,说到了sql语句、多表查询、统计函数、数据伪列、序列、视图、同义词、索引这些常见的知识,也讲到了用户管理、权限分配和数据库备份等知识。可以说是一套很好的入门教程,如果你只是做开发而不是DBA,这套教程足够了。
说说这套视频中我的收获吧!
1、序列的使用
以前也听说过序列,但是自己没用过。因为总觉得很麻烦,所以没有使用过。这次项目中用到了,而且视频也讲到了,才发现,很简单很实用。
语法:
CREATE SEQUENCE myseq
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
使用的时候,例如插入,只用在对应的列赋值myseq.NEXTVAL即可。
例如
INSERT INTO emp VALUES (myseq.nextval, ‘LEWIS‘);
注意事项:
1、myseq有个currentval,也就是当前值,但是这个据说直接使用会有问题,必须先用nextval才能用它,具体大家遇到的时候查查吧
2、当你对数据库导入导出时,或者备份时,要记得把序列一起备份出来,同时检查序列有没有被重置,如果被重置的话会导致主键冲突。
2、Where和Having的区别
Where:是在执行Group by操作之前进行的过滤,表示全部数据之中筛选出部分的数据,在Where中不能使用过统计函数。
Having:实在Group By分组之后的再次过滤,可以使用统计函数。
3、Oracle自行维护的列
Rownum:行号,每次查询都会变,不固定
Rowid:每一行的物理地址的编号
另外,当我们在使用PLSQL的时候,如果是QueryData命令,你会发现查到的数据是不能编辑的。但是,如果你使用的select语句时把rowid的话,是可以编辑的哦,很方便的一个小技巧。
4、联合查询
两个查询到的集合使用下面的关键字:
Union:联合查询,相同的部分不显示
Union all:相同的部分显示
Intsersect:只显示相同的部分
Minus:只显示不同部分
5、视图
对于视图,相信大家都很熟悉。今天想说的,也是我这个“孤陋寡闻”的人第一次知道的:视图是可以编辑的,包括增删改。
如果你创建视图的时候使用了With readonly,那么视图是不可以增删改的
如果使用了WITH CHECKOPTION,那么插入或修改的数据行必须满足视图定义的约束;
当然,如果视图定义中有GROUP 函数,GROUPBY子句,DISTINCT关键字时不能删除数据行。
6、数据库的备份(另写文章总结)
总的来说,这套 视频的学习,用时短,收获大,想想原因:在最需要的时候学习,事半功倍啊!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。