Oracle-视图,约束

试图:试图是数据库对象之一视图在sql语句中体现的角色与表一致,但它不是一张真是存在的表,只是对应了一个查询语句的结果集
当试图对应的子查询中含有函数或者表达式时,那么必须指定别名
试图根据对应的子查询分为:简单试图,复杂试图,连接试图
简单试图:对应的子查询不含有函数,表达式,去重,分组
复杂试图:不是简单实体的都是复杂试图
连接试图:对应的子查询有多表连接查询,连接试图算作复杂试图
简单试图可以进行DML操作,但是复杂试图不允许进行DML操作。
对试图进行DML操作就是对试图数据来源的基础表进行操作
虽然可以对简单试图进行DML操作,但是DML操作也不能违反基表的约束
是简单试图的不当DML操作会污染基础表数据:对简单试图今次那个DML操作后,视图对基础表做出对应操作,但是影响的数据视图对其不可见时,就是对基础表的数据污染删除不存在数据污染情况
为视图添加检查选项可以避免对基础表产生数据污染,检查选项要求对试图进行DML操作后该记录试图对其可见,否则不允许操作。
对试图添加只读选项后,该试图不允许进行DML操作。
数据字典,数据字典是一系列的表,这些表的数据时由数据库自行维护,记录的时一些清单信息,方便随时查看。
USER_OBJECTS:记录用户创建说有数据库对象
USER_VIEW:记录用户创建的所有试图
USER_TABLES:记录用户创建的所有的表
序列
序列也是数据库对象之一,序列的作用是根据指定的规则生成一系列数字,序列通常是为了某张表的主键字段提供值使用
主键:通常每张表都会有主键字段,该字段的值要求非空且唯一,使用该字段来确定表中的每一条记录使用
序列提供了两个伪列:
nextval:获取序列的下一个数字,第一次获取时返回的时start with 指定的数字,以后则是最后获取的数字加上步长的到的,nextval会导致序列发生步进,且不可回退
CURRVAL:获取序列当前数字,即:最后一次生成的数字,新创建的序列需要至少调用一次nextval以后才可以使用currval不会发生序列的步进.
索引:索引时数据库对象之一,作用是加快查询效率索引的创建与使用时数据库自行完成的,经常出现在where中的字段,或者去重,排序,关联条件的字段可以添加索引
唯一性约束,唯一性约束要求该字段在整张表中每条记录的值都不允许重复,null除外。
主键约束,主键约束要求字段非空且唯一,且一张表只能有一个主键约束。

时间: 2024-11-14 00:45:55

Oracle-视图,约束的相关文章

Oracle视图详解

转载自:http://blog.itpub.net/29785807/viewspace-1270120/ 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的.视图只有逻辑定义.每次使用的时候,只是重新执行SQL. 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中.那些用于产生视图的表叫做该视图的基表.一个视图也可以从另一个视图中产生. 视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中.通

oracle中约束(constraints)是如何影响查询计划的

原文:http://www.oracle.com/technetwork/issue-archive/2009/09-may/o39asktom-096149.html oracle中约束(constraints)是如何影响查询计划的 通常人们认为约束只是和数据完整性有关,没问题.但是约束也被优化器使用来优化执行计划. 优化器会拿以下资源最为输入inputs: 1)待优化的查询 2)所有数据库对象统计 3)系统统计,如果可以获取的话(CPU速度.单块I/O速度等等作为物理硬件的衡量尺度) 4)初

Oracle数据库约束问题

你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了.ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本ORACLE是否不同)?视图有约束吗?约束是否会影响SQL性能? 约束信息存储在哪些系统视图.数据字典中?约束能否修改名称?能否禁用约束?延迟约束有啥好处....... 约束定义 约束是强加在表上的规则或条件.确保数据库满足业务规则.保证数据的完整性.当对表进行DML或DDL操作时,如果此操作会造成

oracle视图建主键

一个项目要求视图建主键,下面是一个例子 CREATE or replace VIEW SME_V_A....  (AGENTID,AGENTNAME,BUSYNUM,RESTNUM,RESTTIME,DEVICENONUM,DEVICENOSUM ,CONSTRAINT AGENTSTATIC_PK PRIMARY KEY (AGENTID) RELY DISABLE NOVALIDATE) AS SELECT A.AGENTID as AGENTID, ---座席编号 (SELECT B.OP

Visual Format Language(VFL)视图约束

约束(Constraint)在IOS编程中非常重要,这关乎到用户的直接体验问题. IOS中视图约束有几种方式,常见的是在IB中通过Pin的方式手动添加约束,菜单Editor->Pin->...但是我们往往需要更为灵活的操作,那么就要手动编写代码来实现这些操作. 1:长函数方法 Apple的工程师给我们提供了两种方式,第一种用长函数方法的形式 NSLayoutConstraint(item: <#AnyObject#>, attribute: <#NSLayoutAttribu

ORACLE视图添加备注

ORACLE视图添加备注 版权声明:本文为博主原创文章,未经博主允许不得转载. create or replace view oes_material_series_ref as select t.productgroup, o.idnrk materialcode, t.seriescode   from oes_park_priority t  inner join oms_hm_mtl_general_view v     on t.materialcode = v.material_co

Oracle 视图简单介绍

Oracle视图的种类 关系视图 关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可以通过工具或数据字典来查看视图的相关信息.这是大家常用的视图 如:create view 视图名称 as 查询语句|关系运算 http://blog.csdn.net/tianlesoftware/article/details/5530618 内嵌视图 内嵌视图:在from语句中的可以把表改成一个子查询,如:select a.id ,b.id from emp a,(select id fro

简述oracle视图

1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器.(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据.视图只是定义了一个查询,视图中的数据是从基表中获取

oracle视图如何使用

1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器.(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据.视图只是定义了一个查询,视图中的数据是从基表中获取

Oracle视图 create View

视图是一种虚表,使用CREATE VIEW语句来定义视图,该视图是基于一个或多个表或视图的逻辑表.一个视图本身不包含任何数据, 视图所基于的表称为基表. 视图就相当于一条select 语句,定义了一个视图就是定义了一个sql语句, 视图不占空间,使用视图不会提高性能,但是能简化sql语句 . 创建视图: create view 视图名; 如: create or replace view  v_test  as select * from test where age=10; create or