資料表連線

2021-09-01 03:39:40 字數 1903 閱讀 2337

有2個表 

table1 

user_id     user_name     user_pss  

1          aaa            a  

2          bbb            b  

3          ccc            c  

table2 

user_id     user_power  

1                   111000  

2                   000111  

使用sql語句查詢

正常狀態(內聯接):  

select  table1.user_id,   table1.user_name,   table2.user_power  

fromtable1,table2  where   table1.user_id = table2.user_id  (簡單方式)

或者  select  table1.user_id,   table1.user_name,   table2.user_power  

fromtable1 ( inner) join table2  on   table1.user_id = table2.user_id

但是這樣檢索出來的資料只有2條:  

user_id     user_name       user_power  

1           aaa           000111  

2           bbb           111000  

因為第3條資料在table2中沒有關聯.  

這時使用左連線查詢﹕  

select  table1.user_id,table1.user_name,  table2.user_power  

from    table1,table2  

where   table1.user_id (+)=  table2.user_id

或者是   left join on  table1.user_id = table2.user_id

多個表   left join on  table1.user_id = table2.user_id

left join on  table1.user_id = table3.user_id

就可以得到如下的結果

user_id     user_name       user_power  

1           aaa           000111  

2           bbb           111000  

3           ccc           (null)  

說明﹐左或右連線查詢實際上是指定以那個標的資料為準﹐而預設(不指定左或右連線)是以兩個表中都存在關聯列的資料為準。

完全聯接:返回左右聯接的和集 select  table1.user_id,table1.user_name,  table2.user_power  fromtable1 full (outer) join table2 ontable1.user_id = table2.user_id;

交叉聯接:沒有where子句的交叉聯接將產生聯接所涉及表的笛卡爾積。第乙個表的行數乘以第二個表的行數等於 笛卡爾積結果集的大小。select  table1.user_id,table1.user_name,  table2.user_power  fromtable1 cross join table2(不帶where條件)

如果交叉聯接中帶where的條件則和內聯接一樣。

SQL基礎4 資料表的連線

第四篇 資料庫的基礎資料 本方將分為10個短文發布,此為第四篇,講述了sql查詢時表之間的相關欄位的連線問題的一些常用 和對應分析,包括結構型別 約束條件等 sql查詢的重中之中就是將多表之間建立正確的連線,以此為基礎才能得到我們為了滿足業務方的需求而進行有效地查詢。連線的型別 內連線 按照連線條件...

建立資料表和修改資料表

建立表 sql中建立和刪除資料庫物件的語句被稱為資料定義語言 data definition language,ddl 操作這些物件中資料的語句被稱為資料操作語言 data manipulation language,dml 建立語句屬於ddl,用create table命令 create temp...

庫房資料表

已生成 2015 05 23 08 33 49 伺服器 postgresql 9.4 localhost 5432 資料庫 v9 架構 public 名稱 資料型別 非空?主鍵?預設注釋 autoid integer是是 nextval b warehouse autoid seq regclass...