oracle第5章模式对象.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 5.6.2 对视图执行DML操作 创建带有WITH CHECK OPTION的视图 CREATE VIEW emp_view_check AS SELECT empno, ename, job, sal, deptno FROM emp WHERE sal2500 WITH CHECK OPTION CONSTRAINT emp_view_check; INSERT INTO emp_view_check VALUES(6800, LiLi, CLERK, 2000,30); * 5.6.2 对视图执行DML操作 4.使用WITH READ ONLY子句 如果希望视图仅仅只能读取基表中的数据,而不希望通过它可以更改基表中的数据,可以在创建视图时使用WITH READ ONLY子句。 * 5.6.3 查询视图的定义信息 【例5.32】查询emp_view视图的定义信息,如下: SQL SET LONG 200 SQL COLUMN text FORMAT A50 SQL COLUMN view_name FORMAT A10 SQL SELECT view_name , text , read_only FROM user_views WHERE view_name = EMP_VIEW ; * 5.6.3 查询视图的定义信息 对上述语句说明如下。 SET LONG:用于设置SQL*Plus中每列数据可以显示的最多字符数。这里根据需要将其设置为200,因为text列的内容较多。 view_name:视图名称。 text:视图中子查询语句的内容。 read_only:视图是否为只读。Y表示是,N表示否。 * 5.6.4 修改与删除视图 修改视图可以使用CREATE OR REPLACE VIEW语句,使用该语句修改视图,实际上是删除原来的视图,然后创建一个全新的视图,只不过前后两个视图的名称一样而已。 删除视图时需要使用DROP VIEW语句,其语法如下: DROP VIEW view_name ; 删除视图后,不会影响该视图的基表中的数据。 * 5.7 序 列 在Oracle中,可以使用序列自动生成一个整数序列,主要用来自动为表中的数据类型的主键列提供有序的唯一值,这样就可以避免在向表中添加数据时,手工指定主键值。 而且使用手工指定主键值这种方式时,由于主键值不允许重复,因此它要求操作人员在指定主键值时自己判断新添加的值是否已经存在,这很显然是不可取的。 * 5.7.1 创建序列 序列与视图一样,并不占用实际的存储空间,只是在数据字典中保存它的定义信息。创建序列需要使用CREATE SEQUENCE语句,其语法如下: CREATE SEQUENCE sequence_name [ START WITH start_number ] [ INCREMENT BY increment_number ] [ MINVALUE minvalue | NOMINVALUE ] [ MAXVALUE maxvalue | NOMAXVALUE ] [ CACHE cache_number | NOCACHE ] [ CYCLE | NOCYCLE ] [ ORDER | NOORDER ]; * 5.7.1 创建序列 【例5.33】创建一个名为student_seq的序列,如下: SQL CREATE SEQUENCE student_seq 2 START WITH 1 3 INCREMENT BY 1 4 NOCACHE 5 NOCYCLE 6 ORDER; 序列已创建。 * 5.7.2 使用序列 在使用序列之前,先介绍序列中的两个伪列,如下。 (1) Currval (2) nextval 【例5.34】首先创建一个表student,如下: SQL CREATE TABLE student ( 2 sid NUMBER(4) PRIMARY KEY , 3 sname VARCHAR2(8) NOT NULL 4 ); 表已创建。 然后向student表中添加记录,添加记录时使用前面创建的student_seq序列,为student表中的sid列自动赋值,如下: INSERT INTO student VALUES(student_seq.nextval, CANDY); 上面向student表中插入了两行记录,下面查询该表中的内容: SELECT * FROM student; 查询序列的当前值 SELECT student_seq.currval FROM dual; SELECT sqrt(5) FROM dual;

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档