欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle总结

程序员文章站 2022-04-19 18:21:53
1.ORACLE介绍 ORACLE数据库系统是以分布式数据库为核心的一组软件产品,是客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一。 ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能。2.ORACLE数据库具有的 ......

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 表名(列名,列名...);