幾種表的連線方式(SQL)
SQL幾種常用連線方式(舊式寫法)
一、NATURAL JOIN(自然連線)
兩張表通過NATURAL JOIN連線的時候,相當於有個隱含的WHERE子句,對兩張表中同名的對應列相比較看是否相等。
SQL> select * from emp natural join dept;
返回14行資料 相當於select * from emp , dept where emp.depno = dept.depno;
二、CROSS JOIN(建立笛卡爾積)
對兩張表通過交叉聯合產生第三張返回結果集的表。相當於普通的連線。如下返回56行=14*4
select * from emp cross join dept;
三、INNER JOIN(內連線)
內連線就相當於普通的CROSS JOIN,只是格式不一樣,INNER JOIN在後面有一個ON子句(相當於WHERE)的搜尋條件,用於過濾返回的行。
四、OUTER JOIN (外連線)
select * from ta outer join tb on (ta.c1=tb.c1)
outer join告訴DBMS生成結果表,在此表中不僅帶有相關(ta.c1=tb.c1)行對,而且還有來自兩個源表中任一表的不匹配的行。
五、LEFT OUTER JOIN(左連線) RIGHT OUTER JOIN(右連線)
select * from ta left outer join tb on (ta.c1=tb.c1)
select * from ta right outer join tb on (ta.c1=tb.c1)
left outer join(left join) 告訴DBMS生成包括聯合行和任何不匹配的行的結果表,但是不匹配的行系來自查詢的FROM子句中LEFT OUTER JOIN關鍵詞左邊的表中。
right outer join(right join)與left outer join(left join)剛好相反。
六、FULL OUTER JOIN(全連線)
FULL OUTER JOIN 返回組合了LEFT OUTER JOIN 和RIGHT OUTER JOIN結果的表
Oracle中常用新式寫法
1. 相等連線
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;
2. 外連線
◆左條件(+) = 右條件;
代表除了顯示匹配相等連線條件的資訊之外,還顯示右條件所在的表中無法匹配相等連線條件的資訊。
此時也稱為"右外連線".另一種表示方法是:
SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 連線條件
◆左條件 = 右條件(+);
代表除了顯示匹配相等連線條件的資訊之外,還顯示左條件所在的表中無法匹配相等連線條件的資訊。
此時也稱為"左外連線".
SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 連線條件
3. 不等連線
兩個表中的相關的兩列進行不等連線,比較符號一般為>,<,...,BETWEEN.. AND..
SELECT EMPNO,ENAME,SAL,GRADE FROM SALGRADE,EMP
WHERE EMP.SAL BETWEEN LOSAL AND HISAL;
4. 自連線
自連線是資料庫中經常要用的連線方式,使用自連線可以將自身表的一個映象當作另一個表來對待,從而能夠得到一些特殊的資料。
一、NATURAL JOIN(自然連線)
兩張表通過NATURAL JOIN連線的時候,相當於有個隱含的WHERE子句,對兩張表中同名的對應列相比較看是否相等。
SQL> select * from emp natural join dept;
返回14行資料 相當於select * from emp , dept where emp.depno = dept.depno;
二、CROSS JOIN(建立笛卡爾積)
對兩張表通過交叉聯合產生第三張返回結果集的表。相當於普通的連線。如下返回56行=14*4
select * from emp cross join dept;
三、INNER JOIN(內連線)
內連線就相當於普通的CROSS JOIN,只是格式不一樣,INNER JOIN在後面有一個ON子句(相當於WHERE)的搜尋條件,用於過濾返回的行。
四、OUTER JOIN (外連線)
select * from ta outer join tb on (ta.c1=tb.c1)
outer join告訴DBMS生成結果表,在此表中不僅帶有相關(ta.c1=tb.c1)行對,而且還有來自兩個源表中任一表的不匹配的行。
五、LEFT OUTER JOIN(左連線) RIGHT OUTER JOIN(右連線)
select * from ta left outer join tb on (ta.c1=tb.c1)
select * from ta right outer join tb on (ta.c1=tb.c1)
left outer join(left join) 告訴DBMS生成包括聯合行和任何不匹配的行的結果表,但是不匹配的行系來自查詢的FROM子句中LEFT OUTER JOIN關鍵詞左邊的表中。
right outer join(right join)與left outer join(left join)剛好相反。
六、FULL OUTER JOIN(全連線)
FULL OUTER JOIN 返回組合了LEFT OUTER JOIN 和RIGHT OUTER JOIN結果的表
Oracle中常用新式寫法
1. 相等連線
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;
2. 外連線
◆左條件(+) = 右條件;
代表除了顯示匹配相等連線條件的資訊之外,還顯示右條件所在的表中無法匹配相等連線條件的資訊。
此時也稱為"右外連線".另一種表示方法是:
SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 連線條件
◆左條件 = 右條件(+);
代表除了顯示匹配相等連線條件的資訊之外,還顯示左條件所在的表中無法匹配相等連線條件的資訊。
此時也稱為"左外連線".
SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 連線條件
3. 不等連線
兩個表中的相關的兩列進行不等連線,比較符號一般為>,<,...,BETWEEN.. AND..
SELECT EMPNO,ENAME,SAL,GRADE FROM SALGRADE,EMP
WHERE EMP.SAL BETWEEN LOSAL AND HISAL;
4. 自連線
自連線是資料庫中經常要用的連線方式,使用自連線可以將自身表的一個映象當作另一個表來對待,從而能夠得到一些特殊的資料。
相關文章
- 【SQL】表連線七種方式SQL
- 【SQL 效能優化】表的三種連線方式SQL優化
- golang 幾種字串的連線方式Golang字串
- 【SQL 效能最佳化】表的三種連線方式SQL
- SQL中的四種連線方式SQL
- VMware連線網路的幾種方式
- Oracle的三種表連線方式Oracle
- SQL表連線方式詳解SQL
- mybatis連線資料庫的幾種方式MyBatis資料庫
- PHP 技術卡片 - 字串連線的幾種方式PHP字串
- 各種表連線方式對比分析
- 3種主要表連線方式對比
- oracle sql內連線_左(右)連線_全外連線_幾種寫法OracleSQL
- Spring連線資料庫的幾種常用的方式Spring資料庫
- Java裡連線字串的幾種方式以及優缺點Java字串
- 【SQL】SQL表連線方法方式介紹(Oracle/Postgresql)SQLOracle
- sql最佳化的幾種方式SQL
- 【SQL】表連線 --半連線SQL
- 117 遠端連線mysql資料庫的幾種方式MySql資料庫
- 三種表連線方式 最佳化總結
- ORACLE 表連線方式Oracle
- oracle表連線方式Oracle
- 表的三種連線方式官方解釋及個人理解
- merge into三種表連線方式的效能比較(一)
- zt_virtualbox幾種網路network連線方式
- ThinkPHP 列印 sql 語句的幾種方式PHPSQL
- SQL Server常用的幾種啟動方式SQLServer
- HTTP代理的兩種連線方式HTTP
- SQL 三表連線SQL
- 資料庫SQL調優的幾種方式資料庫SQL
- SQL的四種連線:內連線 左外連線 右外連線 全連線SQL
- iSCSI儲存的3種連線方式
- C#委託的幾種表現方式C#
- oracle資料庫透過sqlplus連線的幾種方式介紹Oracle資料庫SQL
- 【SQL 學習】表連線SQL
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- Golang 連線池的幾種實現案例Golang
- Python 連線 MySQL 的幾種姿勢PythonMySql