【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联结条件,其实还是过滤条件。

posted @ 2017-05-22 00:05  名称简单点  阅读(119)  评论(0编辑  收藏  举报