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 條件的行,和內連結相對的就是外連結. 外連結會根據外連結的種類有選擇地保留無法匹配到的行.
按照保留的行位於哪張表,外連結有三種形式: 左連結, 右連結和全外連結.