一、知识
这一讲设计SQL数据库的核心理念。如果将所有数据存放在一张table,那明显是低效的。所以关系型数据库就是要将信息分解成多个表,一类数据一个表。各个表通过某些共同的值互相关联。
所以,当我们需要select多张表上的信息时,应该怎么办呢?这也正是这一课需要用到的知识——创建联结。
先举一个用例
笛卡尔乘积&联结执行过程
用到的表
有如此两张表,两张表的信息结合起来才是完整的数据信息。我们不加过滤直接抓信息
select 姓名,成绩,地址 from 表一,表二
输出结果如下:
实际就是两张表数据的简单复合,这种M*N行(假设两张表行数分别为M、N)的数据就称之为笛卡尔乘积。但是离我们想要的信息差距很大,两张表之间有关系的数据是学号,所以我们根据学号来过滤才能得到真正想要的信息
select 姓名,成绩,地址 from 表一,表二
where 表一.学号 =表二.学号
得:
书里的用例
用到的表
1.vendors
2.products