本篇内容介绍了“怎么理解Oracle数据库中的多表查询,分组查询,子查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 多表查询 FROM 性能不好,海量的大数据不建议使用 多表查询:在FROM子句后面设置多张数据表 笛卡尔积:会将两张表相乘 使用别名,若表名很长 表的连接 SELECT * FROM emp e,dept d WHERE e.des=d.des; 表连接的的两种形式: 内连接(等值连接):所有满足条件的数据都会被显示出来; 外连接(左连接,右连接,全外连接)控制左表与右表的数据是否全部显示。(+)免费云主机域名标记仅Oracle才有 SELECT * FROM emp e,dept d WHERE e.des=d.des(+); //左外连接,显示所有emp表的内容 1999语法 左外连接 SELECT * FROM emp LEFT OUTER JOIN dept USING(deptno); 全外连接 SELECT * FROM emp FULL OUTER JOIN dept USING(deptno); 分组查询 GROUB BY select
d.deptno,d.dname,d.loc,trunc(avg(months_between(sysdate,e.hiredate)/12))
years from dept d,emp e group by d.deptno,d.dname,d.loc; Oracle执行语句及顺序 5确定要使用的数据:SELECT 1确定要查找的数据源:FROM 2.针对于数据行的筛选:WHERE 3针对于数据实现分组:GROUP BY 4针对于分组后的数据进行筛选:HAVING 6针对于返回数据进行排序:ORDER BY WHERE和HAVING的区别: WHERE出现在GROUP BY 操作之前,即分组前的数据筛选,不允许使用统计函数 HAVING出现在GROUP BY 之后,针对分组后的数据进行筛选,可以使用统计函数 UNION和UNION ALL的区别: union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序; union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复; 子查询 可同时嵌套多个子查询 未选定行可能是子查询返回为空 作用:解决多表查询带来的笛卡尔积影响的性能问题。 SELECT子句 返回单行单列,使用较少 FROM子句 返回多行多列(表结构) SELECT d.dname,d.loc,count FROM dept d,(SELECT deptno,COUNT(empno) count from emp GROUP BY deptno)
temp WHERE d.deptno=temp.deptno(+); WHERE子句(用到最多) 返回单行单列,单行多列,多行单列 作用:数据行的筛选,过滤条件使用 单行单列: SELECT * FROM emp WHERE sal>(SELECT AVG(sal) FROM emp); 单行多列: SELECT *无锡妇科费用 http://www.wxbhnkyy39.com/ FROM emp WHERE (sal,job)=(SELECT sal,job FROM emp WHERE ename=’SCOTT’); 多行单列: 三种操作符IN,ANY,ALL IN 操作 与子查询中的sal相同均满足此条件 SELECT * FROM emp WHERE sal IN (SELECT sal FROM emp WHERE ename=’SCOTT’); ANY >ANY ()—大于其中最小数值就满足 =ANY ()—等于其中一个数值就满足 SELECT * FROM emp WHERE sal=ANY (SELECT sal FROM emp WHERE job=’CLERK’); ALL >ALL ()—比查询得到的最大值要大 SELECT * FROM emp WHERE sal>ALL (SELECT sal FROM emp WHERE job=’CLERK’); HAVING子句 返回单行单列,同时表示要使用统计函数 SELECT job,COUNT(ename),AVG(SAL) FROM emp GROUP BY job HAVING AVG(sal)>(SELECT AVG(sal) FROM emp);“怎么理解Oracle数据库中的多表查询,分组查询,子查询”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云网站,小编将为大家输出更多高质量的实用文章!
相关推荐: Oracle 12cR1 RAC 在VMware Workstation上安装(上)—OS环境配置
Oracle RAC不支持异构平台。在同一个集群中,可以支持具有速度和规模不同的机器,但所有节点必须运行在相同的操作系统。Oracle RAC不支持具有不同的芯片架构的机器。序号类型内容1数据库p17694377_121020_Linux-x86-64_1of…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。