資料庫中的各個表中存放著不同的資料,使用者往往需要用多個表中的資料來組合、提煉出所需要的資訊。如果一個查詢需要對多個表進行操作,就稱為串連查詢。串連查詢的結果集或結果表,稱為表之間的串連串連。查詢實際上是通過各個表之間共同列的關聯性來查詢資料的,它是關聯式資料庫查詢最主要的特徵。
串連查詢分為等值串連查詢、非等值串連查詢、自串連查詢、外部串連查詢和複合條件串連查詢。
10.3.1 等值與非等值串連查詢
表之間的串連是通過相等的欄位值串連起來的查詢稱為等值串連查詢。可以用兩種方式來指定串連條件。下面例子中的兩個程式段運行結果相同。
注意:邊續查詢的串連條件中,各串連欄位的資料類型不必相同,但必須相容。
10.3.2 非等值串連查詢
在等值查詢的串連條件中不使用等號,而使用其它比較子就構成了非等值串連查詢。可以使用的比較子有:> 、>、=、 <、 <=、 !=, 還可以使用BETWEEN…AND 之類的謂詞。
顯然,這個例子沒有實際應用價值,同時也說明非等值串連查詢往往需要同其它串連查詢結合使用,尤其是同等值串連查詢結合。其用法請參見後面介紹的複合條件串連查詢。
10.3.3 自串連查詢
串連不僅可以在表之間進行,也可以使一個表同其自身進行串連,這種串連稱為自連
接(Self Join),相應的查詢稱為自串連查詢。
例10-21: 查詢在公司工作的工齡相同的員工。
use pangu
10.3.4 外部串連查詢
在前面所舉的例子中,串連的結果是從兩個或兩個以上的表的組合中挑選出符合串連條件的資料,如果資料無法滿足串連條件則將其丟棄。通常稱這種方法為內部串連(InnerJoin)。在內部串連中,參與串連的表的地位是平等的。與內部串連相對的方式稱為外部串連(Outer Join)。在外部串連中,參與串連的表有主從之分,以主表的每行資料去匹配從表的資料列,符合串連條件的資料將直接返回到結果集中,對那些不符合串連條件的列,將被填上NULL 值後再返回到結果集中(對BIT 類型的列,由於BIT 資料類型不允許NULL 值,因此將會被填上0 值再返回到結果中)。
外部串連分為左外部串連(Left Outer Join)和右外部串連(Right Outer Join)兩種。以主表所在的方向區分外部串連,主表在左邊,則稱為左外部串連,主表在右邊,則稱為右外部串連。
10.3.5 複合條件串連查詢
在WHERE 子句中使用多個串連條件的查詢,稱為複合條件串連查詢。
查看全套"MS SQL入門基礎教程"