SQL學習(四)集合運算

UNION和OR謂詞

找出 product 和 product2 中售價高於 500 的商品的基本信息.

select  *
from product
where purchase_price>500

union

select *
from product2
where purchase_price>500;

 

交運算INTERSECT

該運算在Mysql8.0中不支持

差運算EXCEPT 運算

該運算在Mysql8.0中也不支持,不過我們可以採用NOT IN來代替

連結 (JOIN)

是SQL中一種添加列的運算

內連結

-- 內連結
FROM <tb_1> INNER JOIN <tb_2> ON <condition(s)>

這裏要注意的主要是內連結合where一起使用的情況。

這裏可以這麼寫

SELECT  SP.shop_id
       ,SP.shop_name
       ,SP.product_id
       ,P.product_name
       ,P.product_type
       ,P.sale_price
       ,SP.quantity
  FROM shopproduct AS SP
 INNER JOIN product AS P
    ON SP.product_id = P.product_id
 WHERE SP.shop_name = '東京'
   AND P.product_type = '衣服' ;

這時候查詢的執行順序就是:FROM 子句->WHERE 子句->SELECT 子句

 

自連結(SELF JOIN)

就是一張表與自身做連接

 

外連結(OUTER JOIN)

內連結會丟棄兩張表中不滿足 ON 條件的行,和內連結相對的就是外連結. 外連結會根據外連結的種類有選擇地保留無法匹配到的行.

按照保留的行位於哪張表,外連結有三種形式: 左連結, 右連結和全外連結.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章