1. 程式人生 > >SQL的四種連線查詢

SQL的四種連線查詢

        今天在做招標系統的時候,想通過招標編號把投標商、評分項、評標專家幾個表中相關聯的欄位查詢出來。一般以往的做法是把這些欄位放到一張視圖裡,但現在我只是想看看查詢出來的結果是否與測試操作相符,沒必要建一張檢視,於是就想到了今天我們要說的這幾種連線,下面以SQL中的一個小Demo為例進行說明:

        SQL資料庫中有兩張表,一張人員(T_Person)表、一張卡(T_Card)表,人基本上都那麼幾張卡,像銀行卡、飯卡、水卡、電費卡……

(T_Person)

(T_Card)

內連線

1.內連線(inner join 或 join)

        內連線是等值連線,它使用“=、>、<、<>”等運算子根據每個表共有的列的值匹配兩個表中的行

查詢語句:

    select * from T_Person inner join T_Card on T_Person.CardId = T_Card.CardId
查詢結果:


外連線

2.左連線(left join 或 left outer join)

        左連線又稱左向外連線,查詢的結果集包括SQL語句中左表的所有行,右表中匹配的行。如果左表的某行在右表中沒有匹配行,則用空值表示

查詢語句:

    select * from T_Person left join T_Card on T_Person.CardId = T_Card.CardId
查詢結果:


3.右連線(right join 或 right outer join)

        右連線也成右向外連線,查詢的結果集包括SQL語句中右表的所有行,左表中匹配的行。如果右表的某行在左表中沒有匹配的行,則用空值表示

查詢語句:

     select * from T_Person right join T_Card on T_Person.CardId = T_Card.CardId
查詢結果:


4.完全外連線(full join 或 full outer join)

        完全外連線,查詢的結果集包括SQL語句中左表和右表的所有行。如果某行在另一個表中沒有匹配行時,則用空值表示。

查詢語句:

     select * from T_Person full join T_Card on T_Person.CardId = T_Card.CardId

查詢結果:


總結:

        SQL中連線查詢分內、外連線,外連線分左連線、右連線和完全外連線,它們的功能與檢視差不多。其中左右連線查詢是相對應的,即把連線型別和左表、右表互換位置就可得到相同的結果集。

相關推薦

SQL連線查詢

        今天在做招標系統的時候,想通過招標編號把投標商、評分項、評標專家幾個表中相關聯的欄位查詢出來。一般以往的做法是把這些欄位放到一張視圖裡,但現在我只是想看看查詢出來的結果是否與測試操作相符,沒必要建一張檢視,於是就想到了今天我們要說的這幾種連線,下面以SQL中

SQL連線-左外連線、右外連線、內連線、全連線

聯接條件可在FROM或WHERE子句中指定,建議在FROM子句中指定聯接條件。WHERE和HAVING子句也可以包含搜尋條件,以進一步篩選聯接條件所選的行。     聯接可分為以下幾類:     1、內聯接(典型的聯接運算,使用像 =  或 <> 之類的比較運算

深入理解SQL連線-左外連線、右外連線、內連線、全連線

1、內聯接(典型的聯接運算,使用像 = 或 <> 之類的比較運算子)。包括相等聯接和自然聯接。 內聯接使用比較運算子根據每個表共有的列的值匹配兩個表中的行。例如,檢索 students和courses表中學生標識號相同的所有行。 2、外聯接。外聯接

詳解SQL連線-左外連線、右外連線、內連線、全連線

1、內聯接(典型的聯接運算,使用像 =  或 <> 之類的比較運算子)。包括相等聯接和自然聯接。      內聯接使用比較運算子根據每個表共有的列的值匹配兩個表中的行。例如,檢索 students和courses表中學生標識號相同的所有行。        2、

【技術篇】SQL連線-左外連線、右外連線、內連線、全連線

聯接條件可在FROM或WHERE子句中指定,建議在FROM子句中指定聯接條件。WHERE和HAVING子句也可以包含搜尋條件,以進一步篩選聯接條件所選的行。     聯接可分為以下幾類:     1、內聯接(典型的聯接運算,使用像 =  或 <> 之類的比較運算子)。包括相等聯接和自然聯接。  

深入理解SQL連線

1、內聯接(典型的聯接運算,使用像 =  或 <> 之類的比較運算子)。包括相等聯接和自然聯接。     內聯接使用比較運算子根據每個表共有的列的值匹配兩個表中的行。例如,檢索 students和courses表中學生標識號相同的所有行。       2、外

SQL連線用法整理

1、內聯接(典型的聯接運算,使用像 =  或 <> 之類的比較運算子)。包括相等聯接

SQL連線(內連線,外連線

一,內連線(inner join) 內連線(INNER JOIN):分顯式的和隱式的,返回連線表中符合連線條件和查詢條件的資料行。(所謂的連線表就是資料庫在做查詢形成的中間表)。 1.隱式的內連線 沒有INNER JOIN,形成的中間表為兩個表的笛卡爾積。

12、SQL Server:SQL連線-左外連線、右外連線、內連線、全連線

聯接條件可在FROM或WHERE子句中指定,建議在FROM子句中指定聯接條件。WHERE和HAVING子句也可以包含搜尋條件,以進一步篩選聯接條件所選的行。     聯接可分為以下幾類:     1、內聯接(典型的聯接運算,使用像 =  或 <> 之類的比較運算子)。包括相等聯接和自然聯接。 

SQLSQL連線方式

   最近敲機房合作的時候,需要涉及到這塊內容,又重新複習一下。1、內聯接(典型的聯接運算,使用像 =  或 <> 之類的比較運算子)。包括相等聯接和自然聯接。       內聯接使用比較運算子根據每個表共有的列的值匹配兩個表中的行。例如,檢索 students和

SQL連線-左外連線、右外連線、內連線、全連線、交叉連線

今天在看一個遺留系統的資料表的時候發現平時查詢的檢視是FULL OUT JOIN的,導致平時的資料記錄要進行一些限制性處理,其實也可以設定檢視各表為右外連線並在檢視上設定各列的排序和篩選條件就可以達到效果。 聯接條件可在FROM或WHERE子句中指定,建議在FROM子句中指定聯接條件。WHERE和HAVI

【轉】SQL語言:DDL,DML,DCL,TCL

1.DDL(Data Definition Language)資料庫定義語言statements are used to define the database structure or schema. DDL是SQL語言的四大功能之一。 用於定義資料庫的三級結構,包括外模式、概念模式、內模式及

資料庫的連線方式

內連線 內連線  ---拼接查詢結果 內部有聯絡,使用內連線 格式: [inner] join ----inner可省 結果: 從左表中取出每一條記錄,去右表中與所有的記錄進行匹配; 匹配必須是某個條件是左表中與右表中相同,才會保留結果,否則不保留; 基本語法: 左表

資料庫必會必知 之 SQL語言:DDL DML DCL TCL

作者:泥瓦匠 原文連結:傳送門 今天群裡面討論,DDL 還是 DML,我這種小白還是總結下他們的區別吧。 1. DDL – Data Definition Language 資料庫定義語言:定義資料庫的結構。 其主要命令有CREATE,ALTER,DROP等,下面用例子詳解。該語言不需要co

SQL語言:DDL,DML,DCL,TCL

1.DDL(Data Definition Language)資料庫定義語言statements are used to define the database structure or schema. DDL是SQL語言的四大功能之一。 用於定義資料庫的三級結構,包括外

SQL中的連線查詢與巢狀查詢

連線查詢 若一個查詢同時涉及兩個或兩個以上的表,則稱之為連線查詢。連線查詢是資料庫中最最要的查詢, 包括: 1、等值連線查詢 2、自然連線查詢 3、非等值連線查詢 4、自身連線查詢 5、外連線查詢 6、複合條件查詢 等值與非等值連線查詢: 比較運算子主要有=、>、

SQL三表連線查詢與集合的並、交、差運算查詢

use db_sqlserver2   select 姓名, 工資, 面積, 金額, (工資+金額/1000) as 實發工資 from 職工,倉庫, 訂購單       where 職工.職工號=訂購單.職工號 and 職工.倉庫號=倉庫.倉庫號   2:

SQL 排序開窗函式

一 、簡單瞭解什麼是開窗函式     什麼是開窗函式,開窗函式有什麼作用,特徵是什麼?     所謂開窗函式就是定義一個行為列,簡單講,就是在你查詢的結果上,直接多出一列值(可以是聚合值或是排序號),特徵就是帶有over()。二、開窗函式分類     根據使用的目的,開窗函式

利用native SQL實現外連線查詢

String sql ="select s.serviceid as serviceid ,s.servicename,count(o.id) as amount  from service as s left join orderrelation as o on (s.se

資料庫的幾連線查詢

1:連線查詢  通過連線運算子可以實現多個表查詢。連線是關係資料庫模型的主要特點,也是它區別於其它型別 資料庫管理系統的一個標誌。  在關係資料庫管理系統中,表建立時各資料之間的關係不必確定,常把一個實體的所有資訊存放在 一個表中。當檢索資料時,通過連線操作查詢出存放在多