Oracle 内连接和外连接
来源:互联网 发布:淘宝饰品店发展前景 编辑:程序博客网 时间:2024/06/06 00:48
内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会返回满足连接条件的所有记录,而且还会返回满足不满足连接条件的记录!从Oracle9i开始,可以在From 子句中指定连接语法。语法如下:
SELECT table.column,table.column2 FROM table1 [INNER|LEFT|RIGHT|FULL] JOIN table2 ON table.column1=table.column2;
INNER JOIN表示内连接,LEFT JOIN 表示左外连接,RIGHT JOIN表示右外连接,FULL JOIN表示完全外连接;ON 子句用于指定连接条件!
下面我们来看下这些所谓的连接吧!
1.内连接
内连接用于返回满足连接条件的所有记录。默认情况下,在执行连接查询时如果没有指定任何连接操作符,那么这些连接查询属于内连接。 下面以显示部门10的部门名及其雇员名为例,说明使用内连接的方法。示例如下:
SQL> select a.dname ,b.ename from dept a ,emp b where a.deptno=b.deptno and a.deptno=10; DNAME ENAME-------------- ----------ACCOUNTING CLARKACCOUNTING KINGACCOUNTING MILLER
工作中用这种连接查询很多,其实我一直不知道这就是内连接,在我的印象里面,用INNER JOIN连接语法的才是内连接,想想都可笑啊!
所以在执行连接查询时,通过在FROM子句中指定INNER JOIN选项,也可以指定内连接,这是一种显示表示内连接的方式。示例如下:
SQL> select a.dname,b.ename from dept a inner join emp b on a.deptno=b.deptno and a.deptno=10; DNAME ENAME-------------- ----------ACCOUNTING CLARKACCOUNTING KINGACCOUNTING MILLER
还有一种方式的内连接,不过我到现在也不怎么用到,这是从Oracle 9i开始执行的,如果主表的主键列和从表的外部键列名称相同,那么还可以使用NATURAL JOIN关键字自动执行内连接操作,示例如下:
SQL> select dname ,ename from dept natural join emp; DNAME ENAME-------------- ----------RESEARCH SMITHSALES ALLENSALES WARDRESEARCH JONESSALES MARTINSALES BLAKEACCOUNTING CLARKRESEARCH SCOTTACCOUNTING KINGSALES TURNERRESEARCH ADAMSSALES JAMESRESEARCH FORDACCOUNTING MILLER 14 rows selected
2.左外连接
左外连接是通过指定 LEFT [OUTER] JOIN选项来实现的.当使用左外连接时,不仅会返回满足连接条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行。下面以显示部门10的部门名、雇员名,以及其他部门名为例:
SQL> select a.dname,b.ename from dept a left join emp b on a.deptno=b.deptno and a.deptno=10; DNAME ENAME-------------- ----------SALES ACCOUNTING CLARKACCOUNTING KINGACCOUNTING MILLERRESEARCH SALES OPERATIONS
右外连接、全外连接和左外连接很相似,就不多说了!
- Oracle外连接和内连接
- Oracle 内连接和外连接
- oracle中的内连接和外连接
- oracle 内连接和外连接
- oracle表内连接和外连接
- oracle表内连接和外连接
- Oracle的外连接内连接和自连接
- Oracle内连接、外连接
- oracle内连接 外连接
- oracle 连接内连接,外连接
- 内连接和外连接
- 内连接和外连接
- 内连接和外连接
- 内连接和外连接
- 内连接和外连接
- 内连接和外连接
- 内连接和外连接
- 内连接和外连接
- Web开发人员需知的Web缓存知识
- 2013年9月25日星期三
- 分布式云数据中心解决方案
- silverlight 滚动文字
- Eclipse中Cannot find any provider supporting DES解决之道
- Oracle 内连接和外连接
- Matlab 函数 sparse & full
- sybase 表数据同步
- Bean 字段生产xml
- 中国空“芯”之忧:一年进口芯片总值超石油
- Java几款性能分析工具的对比
- 登录后返回登录前的页面
- c++关键字explicit
- SQL2008 --不允许保存更改。您所做的更改要求删除并重新创建以下表......