1.ORACLE介绍
ORACLE数据库系统是以分布式数据库为核心的一组软件产品,是客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一。
ORACLE数据库是目前世界上使用最为普遍的数据库管理系统,做为一个通用的数据库系统,它具备完整的数据管理功能。
2.ORACLE数据库具备的特色:
(1)支持多用户、大事务量的事务处理
(2)数据安全性和完整性控制
(3)支持分布式数据处理
(4)可移植性
3.ORACLE体系结构
(1)数据库
Oracle数据库是数据的物理存储,包括数据文件ORA或者DBF、控制文件、联机日志、参数文件,其中在一个操做系统中只
含有一个数据库;
(2)实例
一个数据库能够有多个实例,实例包括内存结构和后台进程;
(3)dbf(数据文件)
dbf是Oracle的物理存储单位,存储在表空间中,一个表空间能够由一个或多个数据文件组成,一个数据文件只能属于一个
表空间。一旦数据文件被加入到表空间后,就不能删除这个文件,若是要删除某个数据文件,就只能删除其所属于的表空间。
(4)表空间(至关于mySql的database)
表空间是对物理数据库上相关数据文件的逻辑映射。一个数据库在逻辑上被划分红一到若干个表空间,每一个表空间包含了在
逻辑上相关联的一组结构。每一个数据库至少有一个表空间(称之为 system 表空间)。
每一个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。
(5)用户
用户是在表空间下创建的。用户登录后只能看到和操做本身的表, ORACLE的用户与 MYSQL 的数据库相似,每创建一个应用需
要建立一个用户。
4.ORACLE表的建立、修改、删除
Oracle的表的建立,修改和删除跟mySql如出一辙,只有数据类型稍有不同
(1)字符型
CHAR:固定长度的字符类型,最多存储2000个字节;
VARCHAR2(或VARCHAR):可变长度的字符类型,最多存储4000 个字节;
LONG:大文本类型。最大能够存储2G;
(2)数值型NUMBER
能够存储非整数;如,NUMBER(4,2)最大能够存的数为99.99
(3)日期类型
DATE:日期时间型,精确到秒
TIMESTAMP:精确到秒的小数点后9位
(4)二进制型(大数据类型)
CLOB:存储字符,最大能够存4G
BLOB:存储图像、声音、视频等二进制数据,最多能够存4G
5.ORACLE数据的增删改查
Oracle数据的增删改查跟mySql一致,惟一的区别就是在执行增删改的时候后要手动点击commit或者在sql语句中写commit;提交
事务方才执行
6.truncat与delete 实现数据删除的区别
(1)delete 删除的数据能够 rollback;
(2)delete 删除可能产生碎片,而且不释放空间;
(3)truncate 是先摧毁表结构,再重构表结构;
7.ORACLE视图
视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在
所引用的数据表中,视图的结构和数据是对数据表进行查询的结果。
其优势:
(1)简化数据操做:视图能够简化用户处理数据的方式;
(2)着重于特定数据:没必要要的数据或敏感数据能够不出如今视图中;
(3)视图提供了一个简单而有效的安全机制,能够定制不一样用户对数据的访问权限;
(4)提供向后兼容性:视图使用户可以在表的架构更改时为表建立向后兼容接口。
(1)ORACLE视图建立
create [OR REPLACE] [FORCE] view 视图名 as subquery [WITH CHECK OPTION ] [WITH READ ONLY];
其中:
OR REPLACE :若所建立的试图已经存在,ORACLE 自动重建该视图;
FORCE :无论基表是否存在 ORACLE 都会自动建立该视图;
subquery :一条完整的 SELECT 语句,能够在该语句中定义别名;
WITH CHECK OPTION :插入或修改的数据行必须知足视图定义的约束;
WITH READ ONLY :该视图上不能进行任何 DML 操做。
(2)ORACLE视图删除
drop view 视图名;
8.ORACLE物化视图
视图是一个虚拟表,基于它建立时指定的查询语句返回的结果集。每次访问它都会致使这个查询语句被执行一次。为了不每次
访问都执行这个查询,能够将这个查询结果集存储到一个物化视图。
ORACLE物化视图建立
create meterialized view 视图名 [BUILD IMMEDIATE | BUILD DEFERRED ]
refresh [FAST|COMPLETE|FORCE] [on [COMMIT |DEMAND ] | START WITH (start_time) NEXT (next_time)] as subquery;
其中:
BUILD IMMEDIATE 是在建立物化视图的时候就生成数据;
BUILD DEFERRED 则在建立时不生成数据,之后根据须要再生成数据。默认为 BUILD IMMEDIATE;
REFRESH 指当基表发生了 DML 操做后,物化视图什么时候采用哪一种方式和基表进行同步。
9.序列
序列是 ORACLE 提供的用于产生一系列惟一数字的数据库对象。
(1)ORACLE序列建立之一
create sequence 序列名称;
取下一个值
select 序列名称.nextval from dual;
取当前值
select 序列名称.nextval from dual
(2)ORACLE序列建立之二
create sequence 建立序列名称
[INCREMENT BY n] 递增的序列值是n 若是n是正数就递增,若是是负数就递减 默认是 1
[START WITH n] 开始的值,递增默认是 minvalue 递减是 maxvalue
[{MAXVALUE n | NOMAXVALUE}] 最大值
[{MINVALUE n | NOMINVALUE}] 最小值
[{CYCLE | NOCYCLE}] 循环或不循环
[{CACHE n | NOCACHE}];分配并存入到内存中
(3)删除和修改ORACLE序列
修改序列:
alter sequence 序列名称 MAXVALUE 5000 CYCLE;
删除序列:
drop sequence 序列名称;
10.索引
索引是用于加速数据存取的数据对象。合理的使用索引能够大大下降I/O次数,从而提升数据访问性能。
(1)普通索引
语法: create index 索引名称 on 表名(列名);
(2)复合索引
语法: create index 索引名称 on 表名(列名,列名...);
(3)反向键索引
语法:create index 索引名称 on 表名(列名) reverse;
(4)位图索引
语法:create bitmap index 索引名称 on 表名(列名,列名...);sql