第07章 oracle——其他常用方案对象.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第07章 oracle——其他常用方案对象

提问 将30,000 名参加伦敦马拉松比赛的选手姓名输入到数据库中,同时确保每个人的标识号都唯一,怎么办! 自动生成唯一编号 提问 如果在吃完午饭回来后其他人已经录入了一些长跑运动员的申请,情况又会怎样?你如何知道该从哪里开始? 查询编号的当前值和下一个值 提问? 如果伦敦马拉松的报名人数超过50,000 名,需要添加更多的编号,该怎么办? 可以更改该序列,增加MAXVALUE 的值,同时保留现有编号顺序不变。 本章课后练习 完成本章课后练习(打印稿)里各项试题。 课后复习/预习思考题 预习课本第八章 Oracle支持的SQL以下思考题。《查阅相关参考书籍》 1.Oracle中对空值的处理有哪些函数? 2.什么是Top-n查询,Top-n查询一般应用在什么场合 3.Oracle中怎么实现数据分组, ROLLUP与CUBE ,GROUPING SETS怎么实现复杂的数据分组统计。 4.表的连接有哪几种类型,执行的过程是怎样的? 5.什么是子查询,子查询有几种类型,他们的执行过程是怎样的? WITH子句的子查询的具体应用在什么场合? 6.什么是层次查询查询,层次查询有哪些具体应用? 第7章 其他常用方案对象 教学目标 掌握创建,修改,删除序列的方法。 掌握创建,修改,删除同义词的方法。 序列用于产生惟一序号的数据库对象,用于为多个数据库用户依次生成不重复的连续整数。一般形象地称为序列生成器 通常使用序列自动生成表中的主键值。 序列产生的数字最大长度可达到38位十进制数。 序列不占用实际的存储空间,在数据字典中只存储序列的定义描述。 7.1 序列 7.1.1创建序列 创建序列语法 CREATE SEQUENCE [schema.]sequence [ INCREMENT BY n] [ START WITH n] [ MAXVALUE n | NOMAXVALUE] [ MINVALUE n | NOMINVALUE] [ CYCLE | NO CYCLE] [ CACHE n | NO CACHE] [ ORDER | NO ORDER] ; keyword 描述 increment by 定义序列号是上升还是下降,对于一个降序的序列increment by为负值。 start with 定义序列生成的第一个数字,缺省为1。 maxvalue 序列能生成的最大数字。这是升序序列中的限制值。 no maxvalue 没有最大值限制。 minvalue 定义序列可以生成的最小值,这是降序序列中的限制值。 no minvalue 没有最小值限制。 cycle 设置序列值在达到限制值以后可以重复。 nocycle 设置序列值在达到限制值以后不能重复,这是缺省设置。当试图产生maxvalue+1的值时,将会产生一个异常。 cache 定义序列值占据内存块的大小,缺省值为20。 nocache 在每次序列号产生时强制数据字典更新,保证在序列值之间没有间隔。 USER_SEQUENCES 查询序列信息(数据字典) NEXTVAL:序列的下一个新的序号值 CURRVAL:序列的当前序号值 引用方法 在NEXTVAL和CURRVAL之前冠以序列的名字 用“.”连接 一般在SELECT语句中使用 SELECT 序列.nextval FROM dual; SELECT 序列.currval FROM dual; 7.1.2NEXTVAL和CURRVAL伪列 商店: NEXTVAL :“排队取号”,机器生成客户取得的号票 (NEXTVAL)。 职员准备接待该顾客时,将呼叫 CURRVAL 例 :某电子商务网站估计每月产生近千万条订单记录。该网站采用年YYYY+月MM+当月流水号nnnnnnnn的形式标识和区分每一份订单。当有用户提交一份订单时,系统自动生成该订单的编号并告知用户这个唯一的订单号。 要求创建一序列,用于生成每月的订单流水号。 CREATE SEQUENCE order_seq INCREMENT BY 1 START WITH CACHE 500 NOCYCLE; SELECT order_seq.NEXTVAL FROM DUAL; SELECT order_seq.CURRVAL FROM DUAL; SELECT order_seq.NEXTVAL FROM DUAL; 必须先在当前用户会话中用NEXTVAL 生成一个序列号,然后才能引用CURRVAL。 必须用序列名来限定CURRVAL。 COL sequence_name FORMAT A13 SELECT sequence_name, min_value,

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档