此处用到两张表 员工表和部门表
一般的相等连接:
select * from a, b where a.id = b.id;
这个就属于内连接。
内连接
1)等值连接
SQL> SELECT emp.empno, emp.ename, emp.deptno,
2 dept.deptno, dept.loc
3 FROM emp, dept
4 WHERE emp.deptno=dept.deptno;
EMPNO ENAME DEPTNO DEPTNO LOC
----- ------ ------ ------ ---------
7839 KING 10 10 NEW YORK
7698 BLAKE 30 30 CHICAGO
7782 CLARK 10 10 NEW YORK
7566 JONES 20 20 DALLAS
...
14 rows selected.
2)非等值连接
外连接:
Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN
LEFT OUTER JOIN:左外关联 (左外连接就是在等值连接的基础上加上主表中的未匹配数据)
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);
等价于
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id=d.department_id(+)
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。
RIGHT OUTER JOIN:右外关联 (右外连接是在等值连接的基础上加上被连接表的不匹配数据)
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);
等价于
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id(+)=d.department_id
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。
FULL OUTER JOIN:全外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。
分享到:
相关推荐
oracle数据库表左连接右连接全连接的认识
sql左连接,右连接,内连接,全连接详细讲解
Oracle左(外)、右(外)、全(外)、(内)连接语法与SQL标准的比较
SQL之左连接、右连接和全连接,全面讲述表与表见的链接关系、区别
JAVA 使用数据库连接池连接Oracle数据库,全代码,附加详细说明
sql_server连接Oracle方法(最全)
情景描述:之前都是别人给好一个连接远程Oracle数据库的ip地址,直接在我的客户端的tnsnames.ora文件中添加连接的代码就可以成功的访问远程的Oracle数据库了。但现在的情况是,在局域网中,连接我朋友的Oracle数据库...
C#连接Oracle的快速方法,使用Oracle.ManagedDataAccess的综合教程,全开源 1)直接输入Oracle数据库IP\用户名、密码等信息,就可以连接数据库 2)已经写好了一个操作类OracleHelper,可以非常方便的操作数据库返回...
PHP连接Oracle的配置,插件,全在里面,教程很详细,本人亲测,完全有效
oracle全托管驱动Oracle.ManagedDataAccess,压缩包包含Oracle.ManagedDataAccess.dll及连接ORACLE数据库的DEMO代码。
C#连接ORACLE,读写,增删改查全。
Oracle 表的扫描方式及连接方法,全表扫描,索引扫描,索引范围扫描,索引唯一扫描
SqlLite/Mysql/Oracle数据库基于pycharm连接、增删改查基本操作python使用全 # 1连接数据库 2 拿到游标 3 执行sql 4关闭游标 5关闭数据库 import _sqlite3 # 连接 conn = _sqlite3.connect('test.db') #拿到游标 ...
Oracle/Mysql数据库连接jar包全.连接数据库时必备的jar包。
1.通过ODBC使C#能够对MySQL数据进行访问,并可以...2.通过ODBC使C#能够对Oracle数据进行访问,并可以进行事务处理。 3.文档里面包含了环境配置,软件安装的全过程。最后包含了可执行的数据库连接共同的C#代码提供参考。
oracle.ManagedDataAccess.dll(oracle.ManagedDataAccess.Client)全托管驱动。 此驱动对32位和64位oracle数据库具有很好的连接兼容性。 可采用无客户端远程连接oracle,或在本机使用连接。 使用此驱动可以完全替换...
C#.NET连接各类数据库(全)Oracle MySQL ACCESS SQLSERVER
包含以下文件以及环境变量配置,适用于PL/SQL无oracle客户端远程连接oracle10g数据库,亲测可用,内含全套配置教程 oci.dll ocijdbc10.dll ociw32.dll orannzsbb10.dll oraocci10.dll oraociei10.dll sql...