<MySQL学习八>联结表(未完待续)

摘要: 本篇博客仅作为笔记,如有侵权,请联系,立即删除(网上找博客学习,然后手记笔记,因纸质笔记不便保存,所以保存到网络笔记)。

  本文将介绍什么是联结,为什么要联结,如何编写使用联结的SELECT语句。

一、联结

  SQL最强大的功能之一就是能在数据检索查询的执行中联结表。联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结及其语法是学习SQL的一个极为重要的组成部分。

  在能够有效地使用联结前,必须了解关系表以及关系数据库设计的一些基础知识。

1、关系表

  理解关系表的最好方法就是来看一个现实世界中的例子。

  假如有一个包含产品目录的数据库表,其中每种类别的物品占一行。对于每种物品要存储的信息包括产品描述的价格,以及生产该产品的供应商信息。

  现在,假如有由同一供应商生产的多种物品,那么在何处存储供应商信息呢?将这些数据与产品信息分开存储的理由如下:

  (1)因为同一供应商生产的每个产品的供应商信息都是相同的,对每个产品重复此信息既浪费时间又浪费存储空间。

  (2)如果供应商信息改变,只需要改动一次即可。

扫描二维码关注公众号,回复: 4842497 查看本文章

  (3)如果有重复数据(即每种产品都存储供应商信息),很难保证每次输入该数据的方式都相同。不一致的数据在报表中很难利用。

  关键是,相同数据出现多次绝不是一件好事,此因素是关系数据库设计的基础。关系表的设计就是要保证把信息分解成多个表,一类数据一个表。各表通过某些常用的值(即干系设计中的关系)互相关联。

  在这个例子种,可建立两个表,一个存储供应商信息,另一个存储产品信息。vendors表包含所有供应商信息,每个供应商占一行,每个供应商具有唯一标识。此标识称为主键(primary key),可以是供应商ID或任何其他唯一值。

  products表只存储产品信息,它除了存储供应商ID(vendors表的主键)外不存储其他任何供应商信息,vendors表的主键又叫做products的外键,它将vendors表与products表关联,利用供应商ID能从vendors表中找出相应供应商的详细信息。

注意:外键:外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系。

  这样做的好处是:

  (1)供应商信息不重复,从而不浪费时间和空间;

  (2)如果供应商信息变动,可以只更新vendors表中的单个记录,相关表中的数据不用改动;

  (3)由于数据无重复,显然数据时一致的,这使得处理数据更简单。

2、为什么要使用联结

猜你喜欢

转载自www.cnblogs.com/daisy-996/p/10244033.html