- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
其他数据库对象 本章要点 ??视图 ??序列 ??索引 ??同义词 视图 ??视图是虚表。是一个命名的查询,用于改变基表数据的显示,简化查询。视图的访问方式与表的访问方式相同。 ??视图的好处: –可以限制对基表数据的访问,只允许用户通过视图看到表中的一部分数据 –可以使复杂的查询变的简单 –提供了数据的独立性,用户并不知道数据来自于何处 –提供了对相同数据的不同显示 什么是视图? 简单视图和复杂视图 创建视图 ?在CREATE VIEW语句中嵌入一个子查询 ?子查询可以包含复杂的SELECT语法 创建视图 创建一个视图,EMPVU80,其中包含了在部门80 中雇员的详细信息 创建视图 ?用子查询中的列别名创建视图 ?从该视图中选择列,视图中的列使用别名命名 从视图中取回数据 查询视图 修改视图 用CREATE OR REPLACE VIEW子句,为每个列添加一个别名 ?在CREATE VIEW子句中的字段别名列表,按照与子查询中的字段相同的顺序排列 创建复杂视图 创建包含组函数的复杂视图,以从两个表中显示值 视图中DML 操作的执行规则 ?只能在简单视图上执行DML 操作 ?如果视图中包含下面的部分就不能删除行: –组函数 –GROUP BY子句 –DISTINCT关键字 –伪列ROWNUM关键字 拒绝DML 操作 删除视图 删除视图不会丢失数据,因为视图是基于数据库中的基本表的 内联视图 ??内联视图(Inline View),是一个在SQL语句内可以使用的子查询的别名。是一个命名的SQL语句,但不是真正的数据库的视图对象。最常见的内联视图的例子就是主查询中的FROM子句中,包含的是一个命名的子查询。 ??内联视图的例子 Top-N 分析 ?Top-N 查询寻找一列的n个最大或最小值,例如: –销售最好的前10 位产品是什么? –销售最差的前10 位产品是什么? ?最大值和最小值在Top-N 查询中设置 执行Top-N 分析 Top-N 分析查询的高级结构是: Top-N 分析的例子 为了从EMPLOYEES表中显示挣钱最多的3 个人的名字及其薪水: Top-N分析(续) ??ROWNUM是一个伪列。功能是在每次查询时,返回结果集的顺序数。第一行显示为1,第二行为2,以此类推。 ??伪列是使用上类似于表中的列,而实际并没有存储在表中的特殊对象。 ??对ROWNUM只能执行、=运算,不能执行、=或一个区间运算Between..And等。 序列 ??序列是一种用于产生唯一数字列值的数据库对象。一般使用序列自动地生成主码值或唯一键值。序列可以是升序或降序。 ??序列特点: –可以为表中的记录自动产生唯一序列值。 –由用户创建并且可被多个用户共享。 –典型应用是生成主键值,用于标识记录的唯一性。 –允许同时生成多个序列号,而每一个序列号是唯一的。 –可替代应用程序中使用到的序列号。 –使用缓存加速序列的访问速度。 CREATESEQUENCE语句语法 定义一个序列来自动产生有顺序的数: 序列语法说明 ??当全部缺省时,则该序列为上升序列,由1开始,增量为1,没有上限,缓存中序列值个数为20。 ??INCREMENT BY n:n可为正的或负的整数,但不可为0。默认值为1。 ??START WITH n:指定生成的第一个序列号,默认为1。对于升序,默认为序列的最小值。对于降序,默认为序列的最大值。 ??MAXVALUE n:指定n为序列可生成的最大值。 ??NOMAXVALUE:为默认情况。指定升序最大值为10的27次方,指定降序指定最大值为-1。 ??MINVALUE n:指定n为序列的最小值。 ??NOMINVALUE:为默认情况。指定升序默认最小值为1。指定降序默认最小值为-10的26次方。 ??CYCLE:指定序列使用循环。即序列达到了最大值,则返回最小值重新开始。默认为NOCYCLE。 ??CACHE n:定义n个序列值保存在缓存中,默认值为20个。 创建序列 创建一个序列,命名为DEPT_DEPTID_SEQ 使用非CYCLE选项 确认序列 ?校验在USER_SEQUENCES数据字典表中的序列值 NEXTVAL和CURRVAL伪列 ?NEXTVAL返回下一个可用的序列值,它每次返回一个唯一的被引用值,即使对于不同的用户也是如此 ?CURRVAL获得当前的序列值 ?在CURRVAL获得一个值以前,NEXTVAL对该序列必须发布 使用序列 在location ID 2500 中插入一个新部门名称“Support” ?查看当前的DEPT_DEPTID_SEQ序列值 修改序列 创建增量值,最大值,最小值,循环选项和缓存选项 删除序列 ?用DROP SEQ
原创力文档


文档评论(0)