《Oracle数据库基础与应用教程》书籍教案人民邮电出版社出版於岳编写作者联系方式:airfish2000@126.com本书内容:本书全面讲述了Oracle数据库的日常管理工作内容。全共14章,包含Oracle简介和安装、Oracle客户端、管理Oracle环境、Oracle体系结构、管理Oracle存储结构、SQL语言、表、约束、视图、同义词和序列、索引、实现数据库安全、DataPump数据导出和导入、数据库备份和恢复。每章结尾提供适量的选择题、简答题和操作题,通过练习和操作实践,帮助读者巩固所学内容。本书适合Oracle爱好者、Oracle工程师、数据库管理员、培训机构以及大专院校计算机专业教师和学生使用。第10章同义词和序列同义词10.1序列10.2使用OEM管理同义词和序列10.3小结10.410.1同义词10.1.1同义词简介同义词是一个方案对象的别名,用来简化对象的访问,以及提高对象访问的安全性。可以为表、视图、序列、过程、存储函数、包、物化视图、Java类方案对象或用户自定义对象类型创建同义词。同义词并不占用实际的存储空间,只是在数据字典中保存了同义词的定义。在使用同义词时,Oracle数据库将它转换成对应的方案对象的名称。在Oracle数据库中同义词具有以下作用。隐藏方案对象的实际名称和位置。为用户简化SQL语句,便于记忆。为分布式数据库的远程对象提供位置透明性。10.1.2同义词分类在Oracle数据库中,同义词有两种类型,分别是公用同义词和私有同义词。1.公用同义词2.私有同义词10.1.3创建同义词CREATESYNONYM语句用于创建同义词。要在自己的方案中创建私有同义词,必须要拥有CREATESYNONYM系统权限。要在另一个用户的方案中创建私有同义词,必须要拥有CREATEANYSYNONYM系统权限。要创建公用同义词,必须要拥有CREATEPUBLICSYNONYM系统权限。表10-1列出了CREATESYNONYM语句各参数的描述信息。表10-1CREATESYNONYM语句参数10.1.4使用同义词为表创建好同义词之后,就可以使用SELECT、INSERT、UPDATE和DELETE等语句对它进行操作。10.1.5删除同义词DROPSYNONYM语句用于删除同义词。要删除公用同义词,必须要拥有DROPPUBLICSYNONYM系统权限。要删除私有同义词,该同义词必须在自己的方案中,或者必须要拥有DROPANYSYNONYM系统权限。10.2序列10.2.1序列简介序列是用来生成唯一、连续的整数的数据库对象,通常用来自动生成主键或唯一键的值。序列可以为表中的行自动生成序列号,产生一组等间隔的数值,其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。序列是一个从多个用户可以生成唯一的整数的方案对象。序列发生器提供了一个高度可扩展性和性能良好的方法来产生一个数字数据类型的代理键。序列的定义存储在SYSTEM表空间中的数据字典中。由于SYSTEM表空间总是联机的,因此所有序列的定义也总是可用的。同一个序列对象为不同的表产生的序列号是相互独立的。序列定义时一般需要指定以下信息。序列名称。序列是否是升序或降序。数字之间的间隔。数据库是否应该在内存中生成序列号的缓存集。当达到限制时,序列是否应该循环。10.2.2创建序列CREATESEQUENCE语句用于创建序列。要在自己方案中创建序列,必须要拥有CREATESEQUENCE系统权限。要在另一个用户的方案中创建序列,必须要拥有CREATEANYSEQUENCE系统权限。表10-3列出了CREATESEQUENCE语句各参数的描述信息。表10-3CREATESEQUENCE语句参数续表10.2.3使用序列在序列创建好之后,可以通过CURRVAL和NEXTVAL伪列来访问序列的值。可以在SQL语句中使用CURRVAL伪列访问序列的值,返回序列的当前值。如果序列还没有通过调用NEXTVAL产生过序列的下一个值,先引用CURRVAL出现错误。调用CURRVAL要指出序列的名称,格式为:序列名.CURRVAL。可以在SQL语句中使用NEXTVAL伪列,递增序列并返回新值。第一次使用NEXTVAL返回的是初始值,随后的NEXTVAL会自动增加定义的INCREMENTBY值,然后返回增加后的值。调用NEXTVAL将生成序列中的下一个序列号,调用NEXTVAL要指出序列的名称,格式为:序列名.NEXTVAL。10.2.4修改序列ALTERSEQUENCE语句用于修改序列,如更改增量、最小值和最大值、缓存数等。对序列的修改只影响以后产生的序列号,已经产生的序列号不变。在修改序列时,应该注意升序序列的MINVALUE值应当小于MAXVALUE值。序列的某些部分可以在使用中进行修改,但是绝对不能修改SATRTWITH值。要修改序列,序列必须在自己的方案中,或者在序列上必须要拥有ALTER对象权限,或者必须要拥有ALTERANYSEQUENCE系统权限。10.2.5删除序列DROPSEQUENCE语句用于删除序列。要删除序列,该序列必须存在于自己的方案中,或者必须要拥有DROPANYSEQUENCE系统权限。10.3使用OEM管理同义词和序列10.3.1使用OEM创建同义词使用OracleEnterpriseManager按以下步骤创建同义词。(1)在OracleEnterpriseManager页面中单击【方案】→【数据库对象】→【同义词】,如图10-1所示,单击【创建】按钮。图10-1同义词(2)在图10-2所示页面中,按以下要求输入内容,最后单击【确定】按钮。图10-2创建同义词10.3.2使用OEM删除同义词使用OracleEnterpriseManager按以下步骤删除同义词。(1)在图10-3所示页面中,搜索方案SYS中的同义词SYNONYM_1。选择同义词SYNONYM_1,然后单击【删除】按钮。图10-3搜索同义词(2)在图10-4所示页面中,单击【是】按钮确认删除同义词。图10-4确认删除同义词10.3.3使用OEM创建序列使用OracleEnterpriseManager按以下步骤创建序列。(1)在OracleEnterpriseManager页面中单击【方案】→【数据库对象】→【序列】,如图10-5所示,单击【创建】按钮。图10-5序列(2)在图10-6所示页面中,按以下要求输入内容,最后单击【确定】按钮。图10-6创建序列10.3.4使用OEM删除序列使用OracleEnterpriseManager按以下步骤删除序列。(1)在图10-7所示页面中,搜索方案SYS中的序列SEQUENCE_1。选择序列SEQUENCE_1,然后单击【删除】按钮。图10-7搜索序列(2)在图10-8所示页面中,单击【是】按钮确认删除序列。图10-8确认删除序列10.4小结同义词是一个方案对象的别名,用来简化对象的访问,以及提高对象访问的安全性。可以为表、视图、序列、过程、存储函数、包、物化视图、Java类方案对象或用户自定义对象类型创建同义词。同义词并不占用实际的存储空间,只是在数据字典中保存了同义词的定义。在使用同义词时,Oracle数据库将它转换成对应的方案对象的名称。同义词有两种类型,分别是公用同义词和私有同义词。CREATESYNONYM语句用于创建同义词。DROPSYNONYM语句用于删除同义词。序列是用来生成唯一、连续的整数的数据库对象,通常用来自动生成主键或唯一键的值。序列可以为表中的行自动生成序列号,产生一组等间隔的数值,其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。CREATESEQUENCE语句用于创建序列。ALTERSEQUENCE语句用于修改序列。对序列的修改只影响以后产生的序列号,已经产生的序列号不变。DROPSEQUENCE语句用于删除序列。使用CURRVAL伪列返回序列的当前值。如果序列还没有通过调用NEXTVAL产生过序列的下一个值,先引用CURRVAL出现错误。使用NEXTVAL伪列递增序列并返回新值。第一次使用NEXTVAL返回的是初始值,随后的NEXTVAL会自动增加定义的INCREMENTBY值,然后返回增加后的值。调用NEXTVAL将生成序列中的下一个序列号。