oraclestudy2.doc_第1页
oraclestudy2.doc_第2页
oraclestudy2.doc_第3页
全文预览已结束

下载本文档

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

文档简介

多表查询:SELECT DISTINCT 去除重复* |字段 别名 FROM 表名1 别名1,表名2 别名2WHERE 条件(s)ORDER BY 排序的字段1,排序的字段2 ASC升序|DESC降序;使用where关系表之间关联的字段,去除笛卡尔积.左连接和右连接:默认为左连接右连接:select * from emp e,dept d where e.deptno(+)=d.deptno;左连接:select * from emp e,dept d where e.deptno=d.deptno(+);SQL1999:了解CROSS JOIN:交叉连接,产生笛卡尔积。例:SELECT * FROM emp CROSS JOIN dept;NATURAL JOIN:自然连接,自动进行关联字段的匹配。例:SELECT * FROM emp NATURAL JOIN dept;USING:直接关联操作列例:SELECT * FROM emp e JOIN dept d USING(deptno) ;ON:用户自己编写连接条件例:SELECT * FROM emp e JOIN dept d ON(e.deptno=d.deptno) where e.deptno=30;LEFT JOIN:左连接RIGHT JOIN:右连接LEFT OUT JOIN:左外连接RIGHT OUT JOIN:右外连接组函数和分组统计组函数:COUNT():全部记录数MAX():最大值MIN():最小值AVG():平均值SUM():总和分组统计:SELECTDISTINCT*|查询列1 别名1,查询列2 别名2,.FROM 表名称1 别名1,表名称2 别名2.WHERE 条件(s)GROUP BY 分组条件 HAVING 分组条件ORDER BY 排序字段 ASC|DESC,排序字段 ASC|DESC.HAVING中的条件为分组函数条件。例:SELECT deptno,avg(sal) FROM emp GROUP BY deptno HAVING AVG(sal)2000;嵌套查询不能写入列。例:SELECT MAX(AVG(sal) FROM emp GROUP BY deptno;ORDER BY 中使用列别名进行排序例:SELECT deptno,avg(sal) sa FROM emp GROUP BY deptno HAVING AVG(sal)2000ORDER BY sa ASC;子查询SELECTDISTINCT*|查询列1 别名1,查询列2 别名2,.FROM 表名称1 别名1,表名称2 别名2(SELECTDISTINCT*|查询列1 别名1,查询列2 别名2,.FROM 表名称1 别名1,表名称2 别名2.WHERE 条件(s)GROUP BY 分组条件 HAVING 分组条件ORDER BY 排序字段 ASC|DESC,排序字段 ASC|DESC.).WHERE 条件(s)(SELECTDISTINCT*|查询列1 别名1,查询列2 别名2,.FROM 表名称1 别名1,表名称2 别名2.WHERE 条件(s)GROUP BY 分组条件 HAVING 分组条件ORDER BY 排序字段 ASC|DESC,排序字段 ASC|DESC.)GROUP BY 分组条件 HAVING 分组条件ORDER BY 排序字段 ASC|DESC,排序字段 ASC|DESC.例:查出比7654工资高的人员信息select * from emp where sal(select sal from emp where empno=7654);单列子查询:返回的结果是一列的一个内容单行子查询:返回多个列,有可能是一条完整的记录多行子查询:返回多条记录例:要求查询出比7654工资高,同时与7788从事相同工作的人员信息select * from emp where sal(select sal from emp where empno=7654) and job=(select job from emp where empno=7788);例:要求查询出工资最低的姓名,工作,工资select ename,job,sal from emp where sal=(select min(sal) from emp);例:部门名称,部门员工数,部门的平均工资,部门的最低收入雇员姓名select d.dname ,s.count,s.avg,s.min,e.enamefrom dept d,(select deptno,count(deptno) count,avg(sal) avg,min(sal) minfrom emp group by deptno) s,emp ewhere d.deptno=s.deptno and e.sal=s.min;注:dept表与临时表进行关联,在from中列出多个子查询子查询中使用的符号IN操作:指定一个查询的范围例:查找每个部门的最小工资select * from emp where sal in (select min(sal) from emp group by deptno);ANY操作:=ANY:与IN操作符完全一样ANY:比里面最小的值要大ANY:比里面最大的值要小例:select * from emp where sal ALL:比里面最大的值要大ALL (select min(sal) from

温馨提示

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

评论

0/150

提交评论