说真的,终于到联结了。过前面的时候,心里一直纠结,要不要提速,又担心过得太快忽略掉一些重要的,区别或者遗忘点。好在来到了后部分,跟!
这节课介绍联结定义,为啥子使用,怎么使用。
12.1 联结
联结(join)是利用SQL的SELECT能执行的最重要的操作,也是凸显SQL强大的特征之一。
有效使用之前,对于关系表及关系数据库设计的一些基础知识再过一下~
① 关系表
为了说明关系表,可以从实例的分析来理解:
有一个包含产品目录的数据库表,其中每类物品占一行。对于每一种物品,要存储的信息包括产品描述、价格,以及生产该产品的供应商。
现在有同一供应商生产的多种物品,那么在何处存储供应商名、地址、联系方法等供应商信息呢?
将这些数据与产品信息分开存储的理由是:
□ 同一供应商生产的每个产品,其供应商信息都是相同的,对每个产品重复此信息既浪费时间又浪费存储空间;
□ 如果供应商信息发生变化,例如供应商迁址或电话号码变动,只需修改一次即可;
□ 如果有重复数据(即每种产品都存储供应商信息),则很难保证每次输入该数据的方式都相同。不一致的数据在报表中就很难利用。
这就归结到,关系表的设计就是要把信息分解成多个表,一类数据一个表。各表通过某些共同的值互相关联(所以才叫关系数据库)
在上面例子里,最少需要建立两张表,一个存供应商的,一个存产品的,比如Vendors表存上所有供应商信息,每条记录包含一个供应商,具有唯一的标识,专业说法叫主键(primary key)。
那么另一张表Products表只存储产品信息,除了存储供应商ID(Ve