今天是刘小爱自学Java的第64天。
感谢你的观看,谢谢你。
话不多说,继续开始数据库的学习:
image
昨天学习了多表设计,事实上我们所需要的数据,通常会来自多张表。
那么如何使用sql语句一次性查询多张表的数据?
这是我们应该去考虑的问题,为了解决这个问题,今天继续学习多表查询。
一、笛卡尔积与内连接
万万没有想到,学个数据库竟然还能接触到笛卡尔积?后面不会学着学着还会出现牛顿吧……
牛顿、拉格朗日、泰勒、傅里叶……简直就是大学噩梦般的存在。
现在有两张表:部门表、成员表。
那如何查询出一个结果既显示成员又显示部门呢?
就需要引入笛卡尔积的概念:
[图片上传中...(image-3405d6-1592557550138-9)]
格式:select * from member,department;
查出来的数据就相当于成员表与部门表的乘积。
也就是将成员表里的每一条数据都和部门表中的每一条匹配连接。
成员表一共有7条数据
部门表一共有4条数据
那根据笛卡尔积查询出来的数据一共4*7=28条
那么现在问题来了:这就变成排列组合了,查询到的结果冗余。如何避免结果冗余?
将这两张表相同的地方作为查询条件: