电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 认证考试-> ORACLE认证
oracle认证:巧取指定记录与外关联查询_oracle认证
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

  1 取得表中第6到第10条记录的值

  1.1 第一种方法,使用minus语句

  假设ddl语句如下:

  CREATE TABLE T(ID VARCHAR2(4) PRIMARY KEY, VALUE INT)

  那么第一种方法就是取出前5条,再取出前10条,然后采用集合运算的方法把前10条减去前5条就OK了,SQL语句如下

以下是引用片段:
  SELECT * FROM T WHERE ROWNUM <= 10
  MINUS
  SELECT * FROM T WHERE ROWNUM <= 5;


  1.2 另外一种方法,采用子查询

  子查询的这种方法相对比较复杂一点,不过性能要比刚才的集合相减要好一些。这种方法首先在子查询中得到前10条数据,顺路也取得前10条数据的rownum,然后再一次查询的时候取得刚才查询的rownum大于5的那些数据。SQL语句如下

以下是引用片段:
  SELECT ID, VALUE FROM
  (SELECT ID, VALUE, ROWNUM R FROM T WHERE R <= 10)
  WHERE
  R > 5;


  通过上面的语句,就得到了6到第10条数据了。

  2 利用外连接替代not in语句

  in语句还有not in语句的效率是非常的差的,因为数据库在遇到这两种语句的时候是要把数据进行一条一条的比对,如果in或者not in两侧的数据量在上万条的时候,进行比对的次数就是上亿次,很可能一个简单的sql语句就要执行半个小时以上。这种效率客户是肯定不能够接受的。那我们可以考虑两种方法进行替代,第一种就是采用exist语句和not exist语句,这种大家应该比较熟悉了。另外一种就是巧用外关联语句,这种方法可能大家不是很熟悉,我来稍微说一下。假设数据表的建表DDL语句为

  CREATE TABLE T1(ID VARCHAR2(4) PRIMARY KEY, VALUE INT)

  而in或者not in的表的建表DDL语句为

  CREATE TABLE T2(VALUE INT)

  Oracle中外关联采用的是(+)符号表示外关联,也就是说标识了(+)符号的部分在找不到对应的值的时候为NULL。下面是替代in语句的时候的SQL语句

以下是引用片段:
  SELECT T1.ID, T1.VALUE
  FROM T1, T2
  WHERE T1.VALUE = T2.VALUE(+)
  AND T2.VALUE IS NOT NULL;


  而类似的。替代not in语句的时候的SQL语句则为

以下是引用片段:
  SELECT T1.ID, T1.VALUE
  FROM T1, T2
  WHERE T1.VALUE = T2.VALUE(+)
  AND T2.VALUE IS NULL;


  大家可以试验一下,在数据量多的时候,采用外关联比用in或者not in的执行效率要高很多很多。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·visualbasic让表单一开始就显示在荧幕中央(不含工作列)_visualbasic教程
·用vb学做“黑客”程序_visualbasic教程
·夺取月薪之冠-oracle认证_oracle认证
·oracle9i ocm认证实践课考试的一些说明_oracle认证
·oracle三层认证计划_oracle认证
·“大师”级别的认证:oracle9i ocm_oracle认证
·oracle 8i 到 9i 升级之路_oracle认证
·oracle 认证专家 (ocp)_oracle认证
·从 oracle 学习 oracle_oracle认证
·关于oracle和oracle认证证书(附图)_oracle认证

最新文章
·photoshop改废片为非主流式签名图_photoshop教程
·photoshop将照片处理为艺术插画特效_photoshop教程
·使用windows xp很久了 你了解winlogon吗?_windows xp
·photsohop定义动作打造纯色梦幻柔调特效_photoshop教程
·photoshop调整人物照片细节_photoshop教程
·oracle认证培训辅导:巧取指定记录_oracle认证
·oracle认证:何时使用绑定变量性能反而差_oracle认证
·oracle认证:巧取指定记录与外关联查询_oracle认证
·photoshop照片转手绘效果_photoshop教程
·php5的simplexml解析错误_php技巧


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号