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...