易截截图软件、单文件、免安装、纯绿色、仅160KB

数据库视图(oracle)

使用数据库视图通常出于以下两个目的:1。降低操作复杂度;视图是预编译的查询操作,一次定义,之后可快速调用;2。提高系统安全。视图作为数据库对象,可以将其权限独立出来赋给用户,可避免用户对基表的盲目危险操作,同时也可屏蔽一部分私密的属性列。
定义语句:
 CREATE
[OR REPLACE
]
[FORCE
|NOFORCE
] VIEW
YOUR_VIEW_NAME
        (COLNAME1,COLNAME2,COLNAME3,...,COLNAMEn)
AS
        [YOUR_QUERY_STATEMENTS WILL WRITE HERE !]
        [WITH CHECK OPTION
[CONSTRAINTNAME
constraint_name]]
        [WITH READ ONLY
]
对视图的查询操作实际是运行建立视图的sql语句。所以当用户自己修改基表信息时,主表改变,查询视图时也同时输出最新的信息,这样做可以尽可能减少对数据库空间的占用,并且不需要同步操作。
视图也可进行DML操作,但是在操作时要注意以下原则:
条件一:在连接视图中不能有Order by排序语句。
      这主要是因为采用了Order by排序语句后,记录的物理存储顺序发生了改变。此时,若在视图上进行了数据更新,则其对应的基础表找不到具体更改的物理位置。所以,会以失败告终。
  类似的,也不能够在SQL语句中含有Group by、connetc
by等语句。若有这些语句的话,则数据库都不允许对数据进行数据更新操作。
条件二:基础表中所有的NOT NULL列都必须在这个视图中。
      若想在视图上进行数据更新操作的话,则必须要求对应基础表中的所有不允许空的字段都在当前的视图中。其实这很好理解,若每个字段不允许为空,则又不在当前的视图中,则新增加记录的时候,这个字段就没有被赋值,故在保存时就会被基础表所拒绝。
      另外,需要注意的是,无论是更新还是删除语句,若基础表中的某个非空列不在这个视图中,都无法进行更改。也许有人会问,如果用户不是增加记录,而只是更新
数据。那难道也要求在视图中包含所有的非空字段呢?答案是肯定的。因为数据库系统在提交更新事务之前就会对这个条件进行判断。
条件三:需要更新的列不是虚拟列。
     在视图中,可能有些列的结果是通过列表达式定义的,在基础表中并不存在。我们


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

使用CodeSmith生成oracle数据库表的实体层(Model)

使用CodeSmith生成oracle数据库表的实体层(Model)
http://blog.csdn.net/dacong/archive/2009/01/27/3853663.aspx
自己写的,CodeSimth中的例子都是msSQL server的,所以自己写了个支持Oracle数据库表的,不一定很完善,适用就好,数据类型没有周全考虑,只考虑了常用的一些类型,增加了个表名字属性,采用的.net2.0我结 ......

深入浅出oracle锁 原理篇 & 停止无反应的sql会话

在现代的多用户多任务系统中,必然会出现多个用户同时访问共享的某个对象,这个对象可能是表,行,或者内存结构,为了解决多个用户并发性访问带来的数据的安全性,完整性及一致性问题,必须要有一种机制,来使对这些共享资源的并发性访问串行化,oracle中的锁就可以提供这样的功能,当事务在对某个对象进行操作前,先向系统 ......

查询oracle当前连接数

   我们假设是数据库管理员,为了数据库的安全,我们需要知道当前有多少连接数,最大支持多少连接数,可以用以下语句查询
      select username,count(username),machine,status from v$session         
    &n ......

oracle自带的操作文件的包UTL_FILE介绍

    因开发要求,需要对oracle里的数据与数据文件作比较。如采用客户端连接oracle的方式则显得小题大做,且工作量大,不易维护。直接采用存储过程,调用UTL_FILE包的公共过程,显得方便得多。
    首先,需要把数据文件所在的目录注册到oracle中,用create directory。。。语句,然后把此目 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号