多表查询及子查询

2018-08-19  本文已影响0人  麦子渴望幸福

前言

在数据库中我们想查询的数据往往是存在多个独立的表中的,所以客户在浏览器页面操作时,服务器要到数据库中查找相应的内容,这就需要我们在数据库中能查到相应是数据来证实,下面让我们一起来学习多表查询。

多表查询

多表查询分为where条件查询和join连接查询

where条件查询

用法:先做笛卡尔乘积生成一张中间表,再通过where条件过滤生成最终表
缺陷:若量表数据比较庞大的时候,生成的中间表数据量太大,会影响数据库的性能


笛卡尔乘积

使用join

1.内连接
书写方法:Join&inner join
解释:先使用on条件过滤,只显示满足条件的数据,不满足条件的跳过


内连接

2.左外连接
书写方法:Left join
解释:以left join左边的表为主表,左表数据全显示,右表的数据只显示满足条件的,不满足条件的则以null代替


左外连接
3.右外连接
书写方法:Right join
解释:以right join右边的表为主表,右表的数据全部显示,左表的数据只显示满足条件的,不满足条件的则以NULL代替
4.全连接

书写方法:Full join
解释:量表数据全显示,坐标或者右表中没有满足条件的数据,就以NULL代替
总结:
以下表为例:
下表代表全连接的结果
绿色部分代表内连接结果
绿色及以上部分,代表左连接结果
绿色及以下部分,代表右连接结果


全连接

子查询

1.性质

子查询

多表关联注意点

1.先画ER图,梳理多表之间的联系


ER图

2.根据多表之间共同的字段写sql关联语句


image.png
3.表名后+空格+别名

4.子查询(sql语句)+空格+别名;


image.png
上一篇 下一篇

猜你喜欢

热点阅读