Oracle集合操作函数.doc_第1页
Oracle集合操作函数.doc_第2页
Oracle集合操作函数.doc_第3页
Oracle集合操作函数.doc_第4页
Oracle集合操作函数.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OracleMinus关键字/创建表1create table test1(name varchar(10),sex varchar(10),age int);insert into test1 values(luxin,female,25);insert into test1 values(tom,female,26);insert into test1 values(mary1,male,27);insert into test1 values(money,male,27);insert into test1 values(tony,male,28);insert into test1 values(tony1,male,19);/创建表2create table test2(name varchar(10),sex varchar(10),age int);insert into test2 values(luxin,female,25);insert into test2 values(tom,female,26);insert into test2 values(mary2,male,27);insert into test2 values(money,male,27);insert into test2 values(tony,male,28);insert into test2 values(tony2,male,19);-select * from test1 minus select * from test2;结果:NAME SEX AGE- - -mary1 male 27tony1 male 19-select * from test2 minus select * from test1;结果:NAME SEX AGE- - -mary2 male 27tony2 male 19结论:Minus返回的总是左边表中的数据,它返回的是差集。用表1-表2中的数据,如果相同,则去掉,否则返回表1中的数据。=今天在看数据集合时偶然看到了SQL 有MINUS,可以达到相同的目的具体如下:SQL中的MINUS关键字SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中。如果有的话,那这一笔记录就被去除,而不会在最后的结果中出现。如果第二个SQL语句所产生的结果并没有存在于第一个SQL语句所产生的结果内,那这笔资料就被抛弃,其语法如下:SQL Segment 1MINUSSQL Segment 2其实简单的一句话就是找出第一条SQL查询的不在第二条SQL语句查询结果中的那些记录,并且要注意最后返回的结果集中,不同的记录只会被列出一次!下面是我做的实验,很明显能够看出MINUS的效率,made_order共23万笔记录,charge_detail共17万笔记录性能比较:SELECT order_id FROM made_orderMINUSSELECT order_id FROM charge_detail1.14 secSELECT a.order_id FROM made_order aWHERE NOT exists ( SELECT 1 FROM charge_detail WHERE order_id = a.order_id )18.19 secSELECT order_id FROM made_orderWHERE order_id NOT in ( SELECT order_id FROM charge_detail )20.05 secOracleUnion、Union All关键字众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考。假设我们有一个表Student,包括以下字段与数据:drop table student; create table student(id int primary key,name nvarchar2(50) not null,score number not null); insert into student values(1,Aaron,78);insert into student values(2,Bill,76);insert into student values(3,Cindy,89);insert into student values(4,Damon,90);insert into student values(5,Ella,73);insert into student values(6,Frado,61);insert into student values(7,Gill,99);insert into student values(8,Hellen,56);insert into student values(9,Ivan,93);insert into student values(10,Jay,90); commit; Union和Union All的区别。select *from studentwhere id 2 and id 2 and id 6 union select *from studentwhere id 2 and id 6 union all select *from studentwhere id 2 and id 6 union select score,id,namefrom studentwhere id 2 union select score,id,namefrom studentwhere id 2 and id 7 union select score,id,namefrom studentwhere id 8order by id desc order by子句必须写在最后一个结果集里,并且其排序规则将改变操作后的排序结果。对于Union、Union All、Intersect、Minus都有效。注意:1,Union可以对字段名不同但数据类型相同的结果集进行合并;2,如果字段名不同的结果集进行Union,那么对此字段的Order by子句将失效。=Intersect和Minus的操作和Union基本一致,这里一起总结一下:Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;Un

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论