SQL中的各種連線及查詢

2021-07-10 21:45:36 字數 2529 閱讀 1647

sql中的各種連線及查詢

有如下兩張表:

內連線

兩個表的內鏈結就是兩個表的並集。

外連線

兩個表的內鏈結就是兩個表的交集。關鍵字 full outer join 或者full join

左外連線

a的全集 若b中不存在就null。

select * from  test_userone t left

outer

join test_usertwo t2 on t.id = t2.id2

或者

b的全集 若a中不存在就null(類似)

select * from  test_userone t right

outer

join test_usertwo t2 on t.id = t2.id2

或者

還可以使用外連線實現以下情況:

a中存在而b中不存在 使用左連線或者全連線實現

a中存在b中不存在並且 b中存在而a中不存在

使用全連線實現。

它就是笛卡爾乘積,無法用文氏圖表示。

select *  from test_userone t  cross

join test_usertwo t2 ; 或者 select * from test_userone t , test_usertwo t2;

內連線和等值連線的效果是相同的。

自然連線是一種特殊的等值連線。關鍵字為natural join

select * from test_userone natural

join test_usertwo

(自然連線是沒有on的)

等值連線僅要求欄位的屬性值相同,查詢出來的結果集包含兩個表中全部字段。

兩個自然連線的表不僅要求欄位的屬性值相同,還要求欄位的名字也相同。查詢出來的結果會進行投影處理,相同的那個欄位名,只會保留一列。

sql的各種連線查詢

以下均以oracle scott賬號自帶的資料庫為例 方括號裡的東西表示有和沒有效果是一樣的 表內查詢 自連線 查詢所有經理所對應的雇員 sql 86 select manager.ename as manager,worker.ename as worker from emp manager,em...

SQL語句的各種連線查詢

連線查詢,等值和非等值連線 若在等值連線中把重複的屬性列去掉,則為自然連線 自身連線,查詢每一門課的間接先修課 外連線,在通常的連線操作中,只有符合條件的元祖才能作為結果輸出。如上上表中沒有200215125學生的資訊,原因是他沒有選課。但有時我們需要以某個表為主題列出所有元祖的情況,比如說以stu...

sql中的連線查詢

create table 產品 產品編號 char 9 not null,產品名稱 varchar 20 not null go create table 產品銷量 產品編號 char 9 not null,銷量 int go insert into 產品 values 001 顯示器 insert...