《SQL基礎教程》筆記(4) 集合運算

2021-08-20 11:22:26 字數 2576 閱讀 7742

sql集合運算主要包括兩個方面:

表的加法—union:

select shohin_id,shohin_mei

from shohin

union

select shohin_id,shohin_mei

from shohin2 ;

集合運算的注意事項:

注意:集合運算子會除去重複的記錄。但是使用all選項,可以保留重複行。

select shohin_id, shohin_mei

from shohin

union

allselect shohin_id, shohin_mei

from shohin;

選取表中公共部分—intersect:

select shohin_id,shohin_mei

from shohin

intersect

select shohin_id,shohin_mei

from shohin2

order

by shohin_id;

記錄的減法—except:

select shohin_id,shohin_mei

from shohin

except

select shohin_id,shohin_mei

from shohin2

order

by shohin_id;

聯結就是將其他表中的列新增過來,進行「新增列」的集合運算。

內聯結—inner join:

select ts.trnpo_id,ts.tempo_mei,ts.shohin_id,s.shohin_mei,s.hanbai_tanka

from tenposhohin as ts inner

join shohin as s

on ts.shohin_id = s.shohin_id;

on後面是聯結條件。

-- 內聯結和where子句結合使用

select ts.trnpo_id,ts.tempo_mei,ts.shohin_id,s.shohin_mei,s.hanbai_tanka

from tenposhohin as ts inner

join shohin as s

on ts.shohin_id = s.shohin_id

where ts.tenpo_id = '000a';

我們只想知道東京店(000a)的資訊時,可以像之前學習的那樣在where子句中新增條件。

外聯結—outer join:

select ts.trnpo_id,ts.tempo_mei,ts.shohin_id,s.shohin_mei,s.hanbai_tanka

from tenposhohin as ts ouier join shohin as s

on ts.shohin_id = s.shohin_id;

-- 外聯結中使用left、right來指定主表。使用二者所得到的結果完全相同。

select ts.trnpo_id,ts.tempo_mei,ts.shohin_id,s.shohin_mei,s.hanbai_tanka

from tenposhohin as ts left

inner

join shohin as s

on ts.shohin_id = s.shohin_id;

交叉聯結—cross join:交叉聯結使用較少,得到的結果是列數相加,行數相乘的結果。

自聯結:

假如你發現某物品(其id未dtntr)存在問題,因此想知道生產該物品的**商生產的其他物品是否也存在這些問題。因此查詢要求首先找到生產id為dtntr的**商,然後找出這個**商的其他物品。

通過子查詢解決上面問題:

通過子查詢實現相同查詢:

select p1.prod_id, p2.prod_name

from products as p1, products as p2

where p1.vend_id = p2.vend_id

and p2.prod_id = 'dtntr';

where(通過匹配p1的vend_id和p2中的vend_id)首先聯結兩個表,然後按第二個表中的prod_id過濾資料,返回所需的資料。

自聯結就是先表示成兩個表,然後通過指定聯結條件和過濾條件進行內聯結。

窺探SQL 4 集合運算

2.鏈結 join 集合,在資料庫領域表示記錄的集合.具體來說,表 檢視和查詢的執行結果都是記錄的集合,其中的元素為表或者查詢結果中的每一行.在標準 sql 中,分別對檢索結果使用 union,intersect,except 來將檢索結果進行並,交和差運算,像union,intersect,exc...

SQL筆記(四) 集合運算

交運算差運算 sql作用的關係上的union intersect 和except運算對應數學集合論中的 運算 select course id from section where semester fall andyear 2009 select course id from section wh...

scala基礎4 集合

map set list 集合 可變集合可以在適當的地方被更新或擴充套件,意味著你可以修改 新增 移除乙個集合的元素。而不可變集合類,相比之下,永遠不會改變。不過,你仍然可以模擬新增,移除或更新操作。但是這些操作都將返回乙個新的集合,同時原來的集合不發生改變。不可變的都在immutable裡,可變的...