连接查询指基于两个或两个以上表或视图的查询,在实际应用中,可能仅仅查询单个表无法满足应用程序的实际需求,例如显示SALES部门位置以及雇员名,这种情况就需要进行连接查询(DEPT和EMP表)。
- 当使用连接查询时,必须在FROM后指定两个或两个以上的表。
- 当使用连接查询时,应该在列名前加表名作前缀,如果不同表之间的列名不同就不用,但不同表之间存在相同列名时就要加前缀,
- 当使用连接查询时,必须在WHERE子句中指定有效地连接条件,如果有错失,可能会造成笛卡尔集。
☆相等连接:用 = 指定连接条件
SELECT e.name,e.sal,d.dname FROM emp e,dept d WHERE e.deptno = d.deptno AND d.deptno=10;
☆不等连接:其实是BETWEEN...AND...
SELECT a.ename,a.sal,b.grade FROM emp a,salgrade b WHERE a.sal BETWEEN b.losal AND b.hisal;
☆自连接
指同一张表之间的连接查询,主要用在自参照表上显示上下级关系或者层次关系。(自惨表指在不同列之间具有参照关系或主从关系的表),例如,EMP表包含有EMPNO(雇员号)和MGR(管理者号),二者就有参照关系。
SELECT manager.enamec FROM emp manager,emp worker WHERE manager.empno = worker.mgr AND worker.ename='BLAKE';
☆内连接和外连接
1.内连接,默认情况下,在执行连接查询时如果没有指定任何连接操作符,都属于内连接
SELECT a.dname,b.ename FROM dept a,emp b WHERE a.deptno=b.deptno AND a.deptno=10;
另外,通过在FROM子句中指定INNER JOIN也可以指定内连接
SELECT adname,b.ename FROM dept a INNER JOIN emp b ON a.deptno = b.deptno AND a.deptno=10;
如果主表的主键列和从表的外部键列名相同,那么还可以使用NATURAL JOIN 关键字自动执行内连接操作
SELECT dname,ename FROM dept NATURAL JOIN emp;
2.左外连接
左外连接是通过指定LEFT[OUTER]JOIN选项来实现的。不仅会返回满足连接条件的所有记录,而且还会返回不满足连接条件的连接操作符左别表的其他行。
SELECT a.dname,b.ename FROM dept a LEFT JOIN emp b ON a.deptno=b.deptno AND a.deptno=10;
3.右外连接
跟左外连接一样
4.完全外连接
通过FULL[OUTER]JOIN选项来实现的,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的所有其他行。
SELECT a.dname,b.ename FROM dept a FULL JOIN emp b ON a.deptno=b.deptno AND a.deptno=10;
5.使用(+)操作符
当执行外连接时,尽管可以用连接操作符(+)来完成,但还是建议用OUTER JOIN执行外连接。
1.使用(+)操作符执行左外连接
SELECT a.dname,b.ename FROM dept a,emp b WHERE a.deptno=b.deptno(+) AND b.deptno(+)=10;
2.使用(+)操作符执行右外连接
SELECT a.dname,b.ename FROM dept a,emp b WHERE a.deptno(+)=b.deptno AND a.deptno(+)=10 ORDER BY a.dname;
相关推荐
NULL 博文链接:https://hbyuan.iteye.com/blog/818342
oracle连接查询[文].pdf
这个非常经典的oracle数据库的操作,查询和视图,PLSQL介绍,存储过程和触发器的详细PPT讲解,希望对大家有所帮助,挺经典的。
NULL 博文链接:https://hezhou-0521.iteye.com/blog/1260726
Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具...
C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法
word文件,深入讲解Oracle的外连接查询
C#连接Oracle数据库(查询数据)方法,好东西,分享一下
Oracle连接类Oracle连接类Oracle连接类Oracle连接类Oracle连接类
主要介绍了Java使用Jdbc连接Oracle执行简单查询操作,结合实例形式详细分析了java基于jdbc实现Oracle数据库的连接与查询相关操作技巧,需要的朋友可以参考下
Oracle连接常见问题 Oracle连接常见问题
您可能感兴趣的文章:常用的Oracle doc命令(收藏)Oracle 多行记录合并/连接/聚合字符串的几种方法Oracle中字符串连接的实现方法php连接oracle数据库及查询数据的方法plsql连接oracle数据库报ora 12154错
易语言连接ORACLE数据库查询报表。@jhlsn。Tags:ORACLE数据库。
JAVA 使用数据库连接池连接Oracle数据库,全代码,附加详细说明
本驱动连接的版本为oracle 10.2.0.3.0
delphi ODAC oracle 连接控件,用来连接oracle数据库的,蛮好用的。
使用Jmeter测试Oracle,如何配置Jmeter测试计划,进行Oracle连接数测试
Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录
强制释放Oracle数据连接方案,经常会遇到数据库无法连接,发现是连接数超过限制,如何能够看到默认的数据库连接数量限制呢,如何能够增大数量限制呢? .......
修改oracle参数,解决内存的限制,从而解决连接数问题