当前位置:  数据库>oracle

Oracle数据库开发

    来源: 互联网  发布时间:2017-06-07

    本文导语: 在Oracle数据库系统中,表是数据库的基本对象,数据库中所有数据都是以表的形式存在的。 环境——Oracle 11g  一.表的类型 Oracle数据库系统中常用的表包括:堆组织表、索引组织表、聚簇表(索引、散列、有序散列)、嵌套表、...

在Oracle数据库系统中,表是数据库的基本对象,数据库中所有数据都是以表的形式存在的。
 
环境——Oracle 11g

 一.表的类型
 Oracle数据库系统中常用的表包括:堆组织表、索引组织表、聚簇表(索引、散列、有序散列)、嵌套表、临时表、外部表、分区表、对象表等。
 
1.堆组织表
 在Oracle系统中,普通的标准数据库表就是堆组织表,其中的数据以堆的方式管理。
 堆的含义:以随机方式存储数据的一组空间。
 对于堆组织表而言,当进行数据写入时,数据库会使用段中第一个足够的自由空间。
                  当进行数据删除时,系统允许以后的插入和更新操作重用这部分空间。
                 
 2.索引组织表
 索引组织表(index organized table,ITO)是按照索引结构存储数据库的表,这样可以提高查询性能。
 与堆组织表的随意性不同,索引组织表要求数据行本身具有某种物理顺序,数据只能根据主键有序地存储。这样在索引组织表中执行查询操作时,
 使用主键列将会得到较好的读取性能。
 
3.聚簇表
 聚簇,是指一个或多个表组成的组,这些表物理地存储在相同的数据块上,有相同聚簇键值的所有行会相邻地物理存储。
 利用聚簇表可以实现将多个表相关的数据存储在一个数据块中,还可以实现把相同聚簇键值的所有数据预先存储起来,如果多个表经常
 做链接操作,采用聚簇表可以大大提高检索性能。
 oracle 11g提供三种聚簇表:
 a.索引聚簇表(Index Cluster Table):基于B-Tree索引聚簇键而创建的聚簇表。聚簇键指向一个oracle块,而不是一行数据。
 b.散列聚簇表(Hash Cluster Table):使用散列函数代替B-Tree索引的聚簇键索引,表中的数据就是索引。
 在散列聚簇表中,首先通过内部函数或自定义函数进行散列计算,然后将计算得到的码值用于定位表中的数据行。
 如果经常使用有相同的包含相等条件的查询子句访问表时,使用散列聚簇很合适。
 c.有序散列聚簇表(Sorted Hash Cluster Table):这种散列聚簇表是Oracle 10g增加的,它不仅有散列聚簇的性质,还结合了IOT的一些性质。
 如果需要按照某个键获取数据,但是要求这些数据按另外一个列排序,这种情况下适合用有序散列聚簇表。通过使用有序散列聚簇表,
 oracle可以不用排序而查询到数据,因为其中的数据时按照键的有序物理存储的。
 
4.嵌套表
 嵌套表是表中之表,是Oracle对象关系扩展的一部分,他们是系统生成和维护的父/子关系中的子表。
 嵌套表和子表的区别:子表是独立的表,而嵌套表则不是。一个嵌套表是某些行的集合,它在父表中表示为其中一列。对父表中的每一条记录
 嵌套表可以包含多个行。
 嵌套表的优点是能够对他们进行索引和不需要连接,缺点是,尽管有级联删除形式(主行删除时将删除所有从属行),但是引用完整性约束是不可能的。
 
5.临时表
 临时表中存储的是事务处理期间或会话期间的临时数据,当事务处理完毕或会话结束,临时表中的数据就被删除。临时表一旦创建就可以在需要
 时使用,并且只有向表中插入数据时系统才从当前用户的临时表空间为它分配存储区段。
 临时表包括:会话级临时表和事务级临时表。
            会话级临时表在会话没有断开之前,其中的数据不会自动删除,会话结束后被系统自动删除。
            事务级临时表在事务提交时会被系统自动删除。
 
6.外部表
 这是从Oracle 9i开始增加的表类型,外部表中的数据并不存储在数据库本身中,而是放在数据库之外的文件系统中。
 利用外部表可以查询数据库之外的一个文件,可以向数据库加载数据以及写在数据。在Oracle 10g中对外部表做了进一步的改进,引入了
 卸载功能,这样可以在不使用数据库链接的情况下,为数据库之间移动数据提供了一种简单的方法。
 
7.分区表
 分区就是将一个非常大的表分成若干个独立的较小的组成部分进行存储和管理。对表进行分区后,表中的记录将根据分区条件分散存储
 到不同的分区中,用户可以对整个表进行操作,也可以针对特定的分区进行操作。一般表大小超过2GB时,应该使用分区表;此外,如果表中
 包含历史数据,则新的数据被增加到新的分区中。
 
8.对象表
 对象表是基于对象类型创建的表,而不是作为列的集合。对象表中的每一行都是一个对象;每一个对象都有一个标示符(Object Identifier OID)
 来唯一标识。在对象表之间没有主外键关联的概念,为了体现这层关系,Oracle使用REF对象来实现。使用对象表可以简化对象的使用,此外对象表
 是使用对象类型作为模板来创建表的一种便捷方式,它可以确保多个表具有相同的结构。
 

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

二.表的特性
 表的特性将决定怎样创建表、怎样在磁盘上存储表,以及当表生成和可以使用之后,应用中最终执行的方式。
 (1)TABLESPACE子句
 默认情况下,用户创建的表位于用户或数据库默认表空间(USER表空间)上。单用户可以在创建表时,指定代建表的表空间。
 
(2)STORAGE子句
 STORAGE子句多数是在创建表空间时,用来设置表空间的存储属性的。默认情况下,创建在该表空间的数据库对象,都会继承表空间的存储属性。
 用户可以在创建表的时候使用STORAGE子句来另外设置表的存储属性。
 例:create table t_name(...)STORAGE (INITIAL 200K NEXT 200K PCTINCREASE 20 MAXEXTENTS 15);
 
INITIAL: 指出为对象分配的第一个区的大小
 
NEXT: 指出为对象分配的下一个区的大小
 
PCTINCREASE: 在本地管理表空间内,Oracle数据库在创建段时使用该参数的值确定初始段大小,而后续分配的空间将忽略该参数的值。
            在字典管理表空间内,该参数的值指出第三个及其后续区比前一个区增长的百分比。
 
MINEXTENTS: 在本地管理表空间内,它与前面3个参数一起决定初始段(Segment)的大小。
            在字典管理表空间内,其值指出对象创建时分配的区总数。
 
MAXEXTENTS: 该参数只用于字典管理表空间,它指出Oracle可分配给对象的总区(Extent)数。
 
(3)LOGGING和NOTLOGGING
 使用LOGGING和NOTLOGGING子句指定表是否是日志记录表。
 LOGGING子句,系统会记录数据库中所有数据库改变,一旦发生故障,可以从重做日志中获取这些改变,防止数据丢失,提高数据库的可靠性。
 
NOTLOGGING子句,则不会记录该表上的某些操作日志,这样就只产生很少的日志。注意,并不是说使用NOTLOGGING子句,在表上的操作就全部
            不产生重做日志。
            一般NOTLOGGING子句只对一下操作起作用:create table as select;
                                                      SQL*loader直接路径加载;
                                                      直接路径插入;
                                                     
 (4)CACHE和NOCACHE
 CACHE子句用来设置对表进行全表搜索时,将数据库读入缓冲区,并且放置到最近最常使用的一端。
 NOCACHE子句则表示读入缓冲区的数据库被放置到最近最少使用列表的最近最少使用的一端。
 默认情况下创建的表都是NOCACHE。对于频繁进行全表搜索的表,可以设置为CACHE。
 

三.创建表的基本语法
 create table [schema.]table_name
 (
    column_name  datatye [default expr]  [constraint_name] constraint_def  --列1
  ,column_name  datatye [default expr]  [constraint_name] constraint_def  --列2
  ...
    ,column_name  datatye [default expr]  [constraint_name] constraint_def  --列n
 )
 [PCTFREE n]
 [PCTUSED n]
 [INITRANS]
 [STORAGE storage]
 [TABLESPACE table_space]
 [as sub_querry]
 ;
 备注:
 PCTFREE 用于的空间百分比(0~99),0表示插入式完全填满数据块,缺省为10;
 PCTUSED 为表的每个数据库保留的可用空间的最小百分比(1~99),缺省为40;
 PCTFREE和PCTUSED的组合决定了将插入的数据是否放入一个新的数据块中。
 
INITRANS 指出在分配给数据库对象的每个数据块内分配的最初并发事务项数,其取值为1~255,默认为1;

更多详情见请继续阅读下一页的精彩内容:


    
 
 

您可能感兴趣的文章:

  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • 紧急求救:对Oracle数据库中long 型数据进行模糊查询 如何查?
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • 紧急求救:jsp对Oracle数据库中long 型数据进行模糊查询 如何查?
  • 请问:ORACLE中的数据取出来后,需不需要进行一定的转换才能变为C语言的数据类型啊?
  • 手把手教你Oracle数据库导出数据库结构到PowerDesigner
  • Oracle与FoxPro两数据库的数据转换步骤
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle针对Eclipse 11g发布开发包
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • 用Oracle9ias开发无线应用程序开发者网络Oracle
  • 第一块硬盘把第二块UNIX的开发系统及ORACLE拷贝下来吗?
  • Oracle数据库开发工具 SQLTools
  • liunx下用c开发oracle程序
  • 有谁能推荐在unix下用oracle数据库开发软件的书籍吗?
  • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle iis7站长之家
  • 关于oracle的proc开发的问题
  • 谈一下用JSP+ORACLE商业开发的具体或通常的做法
  • 有谁知道Oracle8的数据库管理工具是用什么开发工具编写的?
  • 占用一下,小弟想到深圳发展,有一年JAVA开发经验,熟悉oracle数据库,哪位在深圳的兄弟帮忙介绍个工作,我的QQ:9182647,谢谢了!
  • Linux平台配置Oracle ProC开发环境
  • Oracle XML 开发人员工具包 XDK
  • Oracle 下的开发日积月累
  • ORACLE数据库应用开发常见问题及排除
  • 用jsp + oracle开发时候的一个棘手问题,请帮忙!谢谢
  • 我想配一个编程平台windowsXP+VisualStudio.net或者+Jbuilder,或Linux+oracle,用来做开发,我的电脑已经远远无法满足其要求,,不值
  • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle
  • 请教:如何在unix下用c开发连接oracle数据库。
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • ORACLE日期相关操作
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • Oracle 12c的九大最新技术特性介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,