Oracle拾遗

    这次学习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');

注意事项:

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

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

2WhereHaving的差别

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

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

3Oracle自行维护的列

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

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

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

4、联合查询

两个查询到的集合使用以下的keyword:

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

Union all:同样的部分显示

Intsersect:仅仅显示同样的部分

Minus:仅仅显示不同部分

5、视图

对于视图。相信大家都非常熟悉。

今天想说的,也是我这个“孤陋寡闻”的人第一次知道的:视图是能够编辑的,包含增删改。

假设你创建视图的时候使用了With readonly。那么视图是不能够增删改的

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

当然。假设视图定义中有GROUP 函数,GROUPBY子句。DISTINCTkeyword时不能删除数据行

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


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

原文地址:https://www.cnblogs.com/gccbuaa/p/6933759.html