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‘);

注意事项:

1myseq有个currentval,也就是当前值,但是这个据说直接使用会有问题,必须先用nextval才能用它,具体大家遇到的时候查查吧

2、当你对数据库导入导出时,或者备份时,要记得把序列一起备份出来,同时检查序列有没有被重置,如果被重置的话会导致主键冲突。

2WhereHaving的区别

Where:是在执行Group by操作之前进行的过滤,表示全部数据之中筛选出部分的数据,在Where中不能使用过统计函数。

Having:实在Group By分组之后的再次过滤,可以使用统计函数。

3Oracle自行维护的列

Rownum:行号,每次查询都会变,不固定

Rowid:每一行的物理地址的编号

另外,当我们在使用PLSQL的时候,如果是QueryData命令,你会发现查到的数据是不能编辑的。但是,如果你使用的select语句时把rowid的话,是可以编辑的哦,很方便的一个小技巧。

4、联合查询

两个查询到的集合使用下面的关键字:

Union:联合查询,相同的部分不显示

Union all:相同的部分显示

Intsersect:只显示相同的部分

Minus:只显示不同部分

5、视图

对于视图,相信大家都很熟悉。今天想说的,也是我这个“孤陋寡闻”的人第一次知道的:视图是可以编辑的,包括增删改。

如果你创建视图的时候使用了With readonly,那么视图是不可以增删改的

如果使用了WITH CHECKOPTION,那么插入或修改的数据行必须满足视图定义的约束;

当然,如果视图定义中有GROUP 函数,GROUPBY子句,DISTINCT关键字时不能删除数据行

6、数据库的备份(另写文章总结)


    总的来说,这套 视频的学习,用时短,收获大,想想原因:在最需要的时候学习,事半功倍啊!

Oracle拾遗,布布扣,bubuko.com

Oracle拾遗

上一篇:MongoDB在window下的安装


下一篇:MySQL插入数据时插入无效的列