資料庫中的各個表中存放著不同的資料,使用者往往需要用多個表中的資料來組合、提煉出所需要的資訊。如果乙個查詢需要對多個表進行操作,就稱為
連線查詢。
連線查詢的結果集或結果表,稱為表之間的連線連線。查詢實際上是通過各個表之間共同列的關聯性來查詢資料的,它是關聯式資料庫查詢最主要的特徵。
連線查詢分為等值連線查詢、非等值連線查詢、自連線查詢、外部連線查詢和復合條件連線查詢。
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 子句中使用多個連線條件的查詢,稱為復合條件連線查詢。
Oracle資料庫中的連線查詢
連線查詢 連線查詢指的是多張資料庫進行連線然後查詢資料,連線查詢又分為內連線查詢和外連線查詢。內連線查詢 內連線的特點 只有滿足條件的資料才會被顯示。demo 查詢雇員的編號,姓名,職位,薪資,部門位置和部門編號。先在emp表中新增一條資料 開始查詢 或者 我們可以看到新增進去的二哈沒有被查詢到,d...
資料庫查詢中的連線方式
用兩個表 a table b table 關聯欄位a table.a id和b table.b id來演示一下mysql的內連線 外連線 左 外 連線 右 外 連線 全 外 連線 mysql版本 server version 5.6.31 mysql community server gpl 資料庫...
資料庫連線查詢
一 交叉連線查詢 將第一張表的所有記錄分別與第二張表的每條記錄形成一條新的記錄。select 列名 from 表名1 cross join 表名2 二 內連線查詢 返回多個表中滿足連線條件的記錄 select 表名1.列名1 from 表名1 inner join 表名2 on 連線條件 selec...