文章目录
表的加减法
表的加法UNION
并集运算,会除去重复项
单表加法可用OR
替代:
SELECT *
FROM product
WHERE sale_price / purchase_price < 1.3
UNION
SELECT *
FROM product
WHERE sale_price / purchase_price IS NULL;
保留重复行:
SELECT product_id, product_name
FROM product
UNION ALL
SELECT product_id, product_name
FROM product2;
隐式转换:
SELECT product_id, product_name, '1'
FROM product
UNION
SELECT product_id, product_name,sale_price
FROM product2;
、
则缺少sale_price的将由1补齐,列名为1
SYSDATE()函数可以返回当前日期时间, 是一个日期时间类型的数据, 该数据类型和数值,字符串等类型具有兼容性.
不支持交运算
差集,补集与表的减法
可以使用NOT IN
例子:找出只存在于product表但不存在于product2表的商品.
SELECT *
FROM product
WHERE product_id NOT IN (SELECT product_id
FROM product2)
对称差
SELECT *
FROM product
WHERE product_id NOT IN (SELECT product_id FROM product2)
UNION
SELECT *
FROM product2
WHERE product_id NOT IN (SELECT product_id FROM product)
连结 (JOIN)
期望得到的数据往往会分散在不同的表之中, 这时候就需要使用连结了.
内连结(INNER JOIN)
-- 内连结
FROM <tb_1> INNER JOIN <tb_2> ON <condition(s)>
例子:
SELECT SP.shop_id
,SP.shop_name
,SP.product_id
,P.product_name
,P.product_type
,P.sale_price
,SP