这次学习Oracle视频。还是学到了不少东西的。
首先,这是一次系统的学习。对自己的知识体系是一次查漏补缺,曾经仅仅是简单的会用,如今看到出的问题,非常easy就能够想到是哪一部分出了问题。尤其是如今:新系统集中測试的时候。其作用更是明显。
这次视频。从Oracle安装開始讲,说到了sql语句、多表查询、统计函数、数据伪列、序列、视图、同义词、索引这些常见的知识,也讲到了用户管理、权限分配和数据库备份等知识。
能够说是一套非常好的新手教程。假设你仅仅是做开发而不是DBA。这套教程足够了。
说说这套视频中我的收获吧!
1、序列的使用
曾经也听说过序列,可是自己没用过。由于总认为非常麻烦。所以没有使用过。这次项目中用到了,并且视频也讲到了,才发现。非常easy非常有用。
语法:
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、联合查询
两个查询到的集合使用以下的keyword:
Union:联合查询,同样的部分不显示
Union all:同样的部分显示
Intsersect:仅仅显示同样的部分
Minus:仅仅显示不同部分
5、视图
对于视图。相信大家都非常熟悉。
今天想说的,也是我这个“孤陋寡闻”的人第一次知道的:视图是能够编辑的,包含增删改。
假设你创建视图的时候使用了With readonly。那么视图是不能够增删改的
假设使用了WITH CHECKOPTION,那么插入或改动的数据行必须满足视图定义的约束;
当然。假设视图定义中有GROUP 函数,GROUPBY子句。DISTINCTkeyword时不能删除数据行。
6、数据库的备份(另写文章总结)
总的来说,这套 视频的学习。用时短。收获大,想想原因:在最须要的时候学习,事半功倍啊。