本篇内容介绍了“怎么理解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数据库中的多表查询,分组查询,子查询”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云技术网站,小编将为大家输出更多高质量的实用文章!
这篇文章主要介绍MySQL性能参数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! max_connect_errors是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码的情况。max_co…