orcl实训.doc

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

伪列(rowid、rownum) rowid在记录创建时就生成了,而且是不变的,直接指向硬件上的存储位置,能用rowid直接访问是最快的,但也是人力所无法做到的。rownum是个伪列,查询的时候除非特别指定,否则不会显示。其主要的用处是控制查询返回的行数,比如在WHERE中加ROWNUM5,则查询结果如果在5行或以上时,只返回前4行。 1.ROWNUM的使用——TOP-N分析 使用SELECT语句返回的结果集,若希望按特定条件查询前N条记录,可以使用伪列ROWNUM。 ROWNUM是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列 (强调:先要有结果集)。简单的说ROWNUM是符合条件结果的序列号。它总是从1开始排起的。 使用ROWNUM时,只能使用、=、!=符号。 查询rownum在第二行到第三行之间的数据select * from (select rownum no,id,name from student where rownum=3 ) where no =2; (2)在ORACLE中实现SELECT TOP N SELECT 列名1...列名n FROM ??? (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n) ?? WHERE ROWNUM = N(抽出记录数) ORDER BY ROWNUM ASC 在TOP N纪录中抽出第M(M = N)条记录 SELECT 列名1...列名n FROM ???? ( ???? SELECT ROWNUM RECNO, 列名1...列名nFROM ?????? (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n) ???? WHERE ROWNUM = N(抽出记录数) ?? ORDER BY ROWNUM ASC ???? ) ?? WHERE RECNO = M(M = N) 抽出按某种方式排序的记录集中的第N条记录 SELECT 列名1...列名n FROM ???? ( ????? SELECT ROWNUM RECNO, 列名1...列名nFROM ??????? (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n) ???????? WHERE ROWNUM = N(抽出记录数) ????? ORDER BY ROWNUM ASC ???? ) ???? WHERE RECNO = N 快速删除重复的记录 ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置。 ROWID可以分为物理rowid和逻辑rowid两种。普通的表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid。delete from stu a where rowid not in (select max(b.rowid) from stu b where a.no=b.no and = and a.sex = b.sex); delete from stu a where rowid (select max(b.rowid) from stu b where a.no=b.no and = and a.sex = b.sex); 索引(单列、多列) 1、单列索引 单列索引是基于单个列所建立的索引。 sqlcreate index 索引名 on 表名(列名); ? 2、复合索引 复合索引是基于两列或是多列的索引,在同一张表上可以有多个索引,但是要求列的组合必须不同。 sqlcreate index emp_index1 on emp(ename,job); sqlcreate index emp_index2 on emp(job,ename); 分区表 分区致力于解决支持极大表和索引的关键问题。它采用他们分解成较小和易于管理的称为分区的片(piece)的方法。一旦分区被定义,SQL语句就可以访问的操作某一个分区而不是整个表,因而提高管理的效率。分区对于数据仓库应用程序非常有效,因为他们常常存储和分析巨量的历史数据。分区表的概念 分区致力于解决支持极大表和索引的关键问题。它采用他们分解成较小和易于管理的称为分区的片(piece)的方法。一旦分区被定义,SQL语句就可以访问的操作某一个分区而不是整个表,因而提高管理的效率。分区对于数据仓库应用程序非常有效,因为他们常常存储和分析巨量的历史数据。 分区表的分类 Range partitioning(范围分区) Hash partitioning(哈希分区) List partitioning

文档评论(0)

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

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

1亿VIP精品文档

相关文档