【mySQL必知必会】第十五章 联结表

1、外键(foreign key):外键为某个表中的一列,他包含另一个表的主键值,定义了两个表之间的关系。

2、可伸缩性(scale):能够适应不断增加的工作量而不失败,设计良好的数据库或应用程序称之为可伸缩性好(scale well)。

3、创建联结:

  输入:

  SELECT  vend_name,prod_name,prod_price

  FROM  vendors,products

  WHERE  vendors.vend_id = products.vend_id

  ORDER BY vend_name,prod_name;

  输出:

  vend_name    prod_name    prod_price

  ACME        Bird seed    10.00

  ACME        Carrots      2.50

  Jet          Fuses      5.00

  分析:两个表的联结通过上面的WHERE子句实现。

4、笛卡尔积(cartesian product)

  由没有联结条件的表关系返回的结果。即上一个表的每一行会和下一个表的每一行匹配,有点像两个矩阵相乘。

5、内部联结:

  目前所用的均是等值联结(equijoin),它基于两个表之间的相等测试,这种联结也称为内部联结。

  内部联结除了WHERE写法,还有其他写法

  输入:

  SELECT  vend_name,prod_name,prod_price

  FROM vendors INNER JOIN  products 

  ON  vendors.vend_id = products.vend_id;

6、联结多个表

  输入:

  SELECT  prod_name,vend_name,prod_price,quantity

  FROM  orderitems,products,vendors

  WHERE  products.vend_id = vendors.vend_id

        AND orderitems.prod_id = products.prod_id

        AND order_num = 2005;

  输出:

  prod_name  vend_name  prod_price  quantity

  Bird seed    ACME    10.00      1

  分析:此例显示了订单编号为2005的商品的信息,由上述的笛卡尔积,我们可以知道,其实多个表不加约束,会以矩阵乘积的结果返回,所以所谓的WHERE联结条件,其实还是过滤条件。

转载于:https://www.cnblogs.com/Hystudio-lzu/p/6886815.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值