Oracle数据库管理、开发与实践 教学课件 作者 杨永健 刘尚毅 第9章 视图、索引、序列、同义词.ppt

Oracle数据库管理、开发与实践 教学课件 作者 杨永健 刘尚毅 第9章 视图、索引、序列、同义词.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例9-28】 在SCOTT模式下,使用序列empno_seq为emp表的新纪录提供员工编号,代码及运行结果如下。 SQL insert into emp(empno,ename,deptno) 2 values(empno_seq.nextval,东方,20); ? 已创建 1 行。 执行以上语句后,会为emp表插入一条数据,并且empno列会使用序列empno_seq生成的序列号。 另外,如果用户确定当前序列号,可以使用伪列CURRVAL,如下面的例子。 【例9-29】 使用伪列CURRVAL查询当前的序列号,代码及运行结果如下。 SQL select empno_seq.currval from dual; ? CURRVAL ---------- 9000 说明: 实际上,在为表生成主键值时,通常是为表创建一个行级触发器,然后在触发器主体中使用序列值替换用户提供的值。关于如何使用触发器生成主键,可以参考第6章中有关行级触发器的应用。 使用ALTER SEQUENCE语句可以对序列进行修改。需要注意,除了序列的起始值START WITH不能被修改外,其它可以设置序列的任何子句和参数都可以被修改。如果要修改序列的起始值,则必须先删除序列,然后重键该序列,下面来看几个相关的例子。 【例9-30】 在SCOTT模式下,修改序列empno_seq的最大值为100000,序列增量为200,缓存值为100,代码及运行结果如下。 SQL alter sequence empno_seq 2 maxvalue 100000 3 increment by 200 4 cache 100; ? 序列已更改。 对序列进行修改后,缓存中的序列值将全部丢失。通过查询数据字典USER_SEQUENCES可以获得序列的信息,下面来看一下USER_SEQUENCES数据字典都包含哪些序列信息。 9.3.2 管理序列 【例9-31】 使用desc命令查看user_sequences的结构,代码及运行结果如下。 SQL desc user_sequences; 本例运行结果如图9-16所示。 图9-16 查询user_sequences的结构 另外,当序列不再需要时,数据库用户可以执行DROP SEQUENCE语句删除序列,来看下面的例子。 【例9-32】 使用drop sequence 语句删除empno_seq序列,代码及运行结果如下。 SQL drop sequence empno_seq; ? 序列已删除。 9.4 同义词 同义词是表、索引、视图等模式对象的一个别名。通过模式对象创建同义词,可以隐藏对象的实际名称和所有者信息,或者隐藏分布式数据库中远程对象的设置信息,由此为对象提供一定的安全性保证。与视图、序列一样,同义词只在Oracle数据库的数据字典中保存其定义描述,因此同义词也不占用任何实际的存储空间。 在开发数据库应用程序时,应该尽量避免直接引用表、视图或其它数据库对象的名称,而改用这些对象的同义词。这样可以避免当管理员对数据库对象做出修改和变动之后,必须重新编译应用程序。使用同义词后,即使引用的对象发生变化,也只需要在数据库中对同义词进行修改,而不必对应用程序做任何改动。 Oracle中的同义词分为两种类型:公有同义词和私有同义词。公有同义词被一个特殊的用户组PUBLIC所拥有,数据库中的所有用户都可以使用公有同义词。而私有同义词只被创建它的用户所拥有,只能由该用户以及被授权的其它用户使用。 建立公有同义词是使用CREATE PUBLIC SYNONYM语句完成的。如果数据库用户要建立公有同义词,则要求该用户必须具有CREATE PUBLIC SYSNONYM系统权限,接下来通过若干实例来向读者展示如何创建和应用同义词。 【例9-33】 为SCOTT模式下的dept表创建一个public同义词,代码及运行结果如下。SQL connect system/1qaz2wsx 已连接。 SQL create public synonym public_dept for scott.dept; ? 同义词已创建。 执行以上语句后,将建立公有同义词PUBLIC_DEPT。因为该同义词属于PUBLIC用户组,所以所有用户都可以直接引用该同义词。需要注意,如果用户要使用该同义词,必须具有访问SCOTT.EMP表的权限,下面来看一个例子。 【例9-34】 使用select语句并通过同义词public_dept来访问dept表,代码如下。 SQL select * from public_dept; 本例运行结果

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档