1. 程式人生 > >SQL的連線分為三種:內連線、外連線、交叉連線。

SQL的連線分為三種:內連線、外連線、交叉連線。

先給出兩張表:


一、內連線:

    內連線(INNER JOIN):有兩種,顯式的和隱式的,返回連線表中符合連線條件和查詢條件的資料行。(所謂的連結表就是資料庫在做查詢形成的中間表)。

1、等值連線

     概念:在連線條件中使用等於號(=)運算子,其查詢結果中列出被連線表中的所有列,包括其中的重複列。

例子:

select  * 

from T_student s,T_class c 

where s.classId = c.classId

等價於

select  * 

 from T_student s inner join T_class c on s.classId = c.classId

2、不等連線

   概念:在連線條件中使用除等於號之外運算子(>、<、<>、>=、<=、!>和!<)

select * from T_student s inner join T_class c on s.classId <> c.classId

二、外連線

    外連線分為左連線(LEFT JOIN)或左外連線(LEFT OUTER JOIN)、右連線(RIGHT JOIN)或右外連線(RIGHT OUTER JOIN)、全連線(FULL JOIN)或全外連線(FULL OUTER JOIN)。我們就簡單的叫:左連線、右連線和全連線。

1、左連線:

    概念:返回左表中的所有行,如果左表中行在右表中沒有匹配行,則結果中右表中的列返回空值。

例如:

select  *

from T_student s left join

T_class c on s.classId = c.classId

檢索結果:

  總結:左連線顯示左表全部行,和右表與左表相同行。

2、右連線:

   概念:恰與左連線相反,返回右表中的所有行,如果右表中行在左表中沒有匹配行,則結果中左表中的列返回空值。

例如:

select * from  T_student s right join T_class con s.classId = c.classId

檢索結果:

 總結:右連線恰與左連線相反,顯示右表全部行,和左表與右表相同行。

3、全連線:

  概念:返回左表和右表中的所有行。當某行在另一表中沒有匹配行,則另一表中的列返回空值。

select * from  T_student s 

full join T_class c on s.classId = c.classId

   總結:返回左表和右表中的所有行。

三、交叉連線(CROSS JOIN):也稱迪卡爾積

概念:不帶WHERE條件子句,它將會返回被連線的兩個表的笛卡爾積,返回結果的行數等於兩個錶行數的乘積(例如:T_student和T_class,返回4*4=16條記錄),如果帶where,返回或顯示的是匹配的行數。

1、不帶where:

  1. select *from T_student cross joinT_class    //cross join 可以省略不寫
  2.   等於
  3.    select *from T_student, T_class
總結:相當與笛卡爾積,左表和右表組合。

2、有where子句,往往會先生成兩個錶行數乘積的資料表,然後才根據where條件從中選擇。

  1. select * from T_student s cross join T_class c where s.classId = c.classId   
  2.    (注:cross join後加條件只能用where,不能用on)  
      查詢結果跟等值連線的查詢結果是一樣。

相關推薦

SQL連線分為連線連線交叉連線

先給出兩張表:一、內連線:    內連線(INNER JOIN):有兩種,顯式的和隱式的,返回連線表中符合連線條件和查詢條件的資料行。(所謂的連結表就是資料庫在做查詢形成的中間表)。1、等值連線     概念:在連線條件中使用等於號(=)運算子,其查詢結果中列出被連線表中的所

未來藍芽將會分為Bluetooth Smart ReadyBluetooth Smart以及標準 Bluetooth

未來藍芽將會分為三種:。Bluetooth Smart Ready、Bluetooth Smart、以及標準 Bluetooth根據 Bluetooth SIG 的說法,新的印記是為了要分辨裝置間的相

Atitit 資料join 的原理與java實現 Atitit join表連線的原理與實現 13SQL Server 表連線方式   (1) Merge Join   (2) Nested

Atitit 資料join 的原理與java實現   Atitit join表連線的原理與實現   13、SQL Server 表連線的三種方式 (1) Merge Join (2) Nested Loop Join (3) Hash Join &

elasticsearch 的兩連線方式+客戶端

  所有語言 所有語言可以使用 RESTful API 通過埠 9200 和 Elasticsearch 進行通訊,你可以用你最喜愛的 web 客戶端訪問 Elasticsearch 。事實上,正如你所看到的,你甚至可以使用 curl&n

簡單區別儲存與主機連線模式DAS/SAN/NAS

一般來說,儲存(Storage)與主機(Host)連線模式有三種:SAN(Storage Area Network)儲存區域網路,DAS(Direct-Attached Storage)直連式儲存,NAS(Network Attached Storage)網路附屬儲存。此三種

JDBC建立連線不同方式

public class Jdbc {    static final String JDBC_Driver = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/jdbcdemo?useSS

sqlplus連線方式

sys使用者在cmd下以DBA身份登陸:    sqlplus /nolog        --執行sqlplus命令,進入sqlplus環境。其中/nolog是不登陸到資料庫伺服器的意思,如果沒有/nolog引數,sqlplus會提示你輸入使用者名稱和密碼 SQL〉co

多表連線方式詳解 hash joinmerge join nested loop

在多表聯合查詢的時候,如果我們檢視它的執行計劃,就會發現裡面有多表之間的連線方式。多表之間的連線有三種方式:Nested Loops,Hash Join 和 Sort Merge Join.具體適用哪種型別的連線取決於 當前的優化器模式 (ALL_ROWS 和 RULE) 取決於表大小 取決於連線列

多表連線方式詳解 HASH JOIN MERGE JOIN NESTED LOOP

在多表聯合查詢的時候,如果我們檢視它的執行計劃,就會發現裡面有多表之間的連線方式。 之前打算在sqlplus中用執行計劃的,但是格式看起來有點亂,就用Toad 做了3個截圖。  

thinkphp——配置資料庫連線方法

                        &nbs

使用虛擬機器VMware時網路連線形式說明

一、使用橋接網路。 有教室的一個網路環境,在教室裡面有很多學生。假設張三的電腦是Windows系統、ip地址為192.168.0.10,李四的電腦是Windows系統、ip地址為192.168.0.20。他們在同一個網路環境(同一個網段)裡面是可以直接通訊的。 李四在他的電腦上裝了一個

python中字串連線方式

1、字串之間連線 ‘aa’ ‘bb’  可以中間為空格 或者什麼都沒有。 那麼輸出都是兩者之間緊密相連。 2、字串+數字 'aa' +90 這樣會報錯,因為不同型別不能相加, 可以用 'aa',90.這樣可以,但是中間會有一個空格 3、%佔位符  print '%

多表連線方式詳解 HASH JOIN MERGE JOIN NESTED LOOP【3】

SQL server 內部實現了三種類型的內連線運算,大多數人從來沒有聽說過這些連線型別,因為它們不是邏輯連線也很少被用於程式碼中。那麼它們什麼時候會被用到呢?答案是要依情況而定。這就意味著要依賴於記錄集和索引。查詢優化器總是智慧的選擇最優的物理連線型別。我們知道SQL優

套接字連線方式

       如何使用套接字進行通訊呢?伺服器程式會首先啟動,然後它就只是等待來自客戶的請求.通常,由客戶程式發起一個連線,指向它希望連線的伺服器.當客戶發出請求時,伺服器可以接受這個連線,變即啟動一個特定的伺服器端套接字,通過它與客戶端套接字相連.為了支援這種操作模式.可以使用三種不同的套接字連線:1 :

C#連線mysql方式

第一種方式:使用MySQLDriverCS.dll連線MySQLDriverCS軟體下載:https://sourceforge.net/projects/mysqldrivercs/?source=typ_redirect安裝完之後再引用中新增引用,找到安裝目錄,找到MyS

Java JDBC 連線 Oracle 方法

Java JDBC 連線 Oracle 三種方法 Oracle JDBC 連線ServiceName jdbc:oracle:thin:@//:/ 例:jdbc:oracle:[email protected]//10.1.112.110:1521/H

java中兩個字串連線方法

java中兩個字串連線有以下三種方法: 第一種方法:使用+; 第二種方法:使用concat(); 第三種方法:使用append(); 如下程式碼: public class Practice { //第一種方法:使用+ public static String

iptables限制連線數量限制方式

這裡介紹三種限制方式 1、限制區域網內每個使用者的連線數為50 iptables -I FORWARD -p tcp -m connlimit –connlimit-above 50 -j REJECT 2、限制指定區域網使用者XXX.XXX.XXX.XXX的連

【Java學習筆記】10系統建的Annotation

Annotation是Java的一種特殊的註釋語法。 內建的三個Annotation: @Override、@Deprecated、@SuppressWarnings @Override表示進行正確的覆寫操作 package day10; class Person {

VMWare 網路連線模式(bridgedNAThost-only)

簡述 VMWare 提供了三種網路連線模式:bridged(橋接模式)、NAT(網路地址轉換模式)、host-only(僅主機模式)。要想在網路管理和維護中合理應用它們,就應該先了解一下這三種模式。 | bridged(橋接模式) 在 bridged