SQL 连接

自然连接

此操作仅仅把在R和S模式中有某共同属性,且此属性有相同的值的元组配对。
如果一个元组不能和另外关系中的任何一个元组配对的话,这个元组被称为悬浮元组

关系U

ABC
123
678
978

关系V

BCD
234
235
7810

关系U与关系V的自然连接

ABCD
1234
1235
67810
97810

外连接:通过悬浮元组里填充空值来是指成为查询结果
内连接:连接的表里面都要有对应的数据,否则无法显示

  1. JOIN…ON θ连接
    movies JOIN starsIn ON title=movieTitle AND year = movieYear

    NATURAL JOIN 自然连接 类似于JOIN
    两个等值的属性只投影一个
    movieStar NATURAL JOIN movieExec`
  2. JOIN: 如果表中有至少一个匹配,则返回行
    LEFT JOIN 左外连接: 即使右表中没有匹配,也从左表返回所有的行(LEFT OUTER JOIN)
    RIGHT JOIN 右外连接: 即使左表中没有匹配,也从右表返回所有的行(RIGHT OUTER JOIN)
    FULL JOIN 完全外连接: 只要其中一个表中存在匹配,就返回行(FULL OUTER JOIN)
    外连接表示即使其中一张表没有匹配也会显示另一张表的数据,没有数据的显示为空。
  3. INNER JOIN 内连接:在表中存在至少一个匹配时,INNER JOIN 关键字返回行
    INNER JOIN 与JOIN相同
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
 ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

建立连接视图(内连接)

CREATE OR REPLACE VIEW v_distribution_goods
AS
    SELECT DG.*, 
                 G.f_brandCode, G.f_brandName, G.f_name f_goodsName, G.f_saleSpec, G.f_unitName,
                 SGP.f_execPrice,
                 D.f_warehouseCode,
                 (ST.f_quantity-ST.f_lockedQuantity)f_stockQuantity -- 库存量等于数量减去锁定量
    FROM t_distribution_goods DG 
            INNER JOIN t_distribution D ON DG.f_distNumber=D.f_distNumber
            INNER JOIN v_goods G ON DG.f_goodsId=G.f_id
            INNER JOIN t_shop_goods_price SGP ON SGP.f_shopCode=D.f_shopCode AND SGP.f_goodsId=DG.f_goodsId
            INNER JOIN t_stock_total ST ON G.f_id=ST.f_goodsId AND D.f_warehouseCode=ST.f_warehouseCode;

左连接(外连接)

CREATE OR REPLACE VIEW v_goods_temp
AS 
    SELECT T.*, S.f_code f_superCategoryCode, U.f_code f_unitCode, B.f_code f_brandCode 
    FROM t_goods_temp T 
        LEFT JOIN t_super_category S ON T.f_superCategoryName=S.f_name
        LEFT JOIN t_unit U ON T.f_unitName=U.f_name
        LEFT JOIN t_brand B ON T.f_brandName=B.f_name;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值