怎么理解Oracle数据库中的多表查询,分组查询,子查询


本篇内容介绍了“怎么理解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举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/10 09:03
下一篇 01/10 09:03