多表查询及子查询

前言

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

多表查询

多表查询分为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.性质

  • 子查询或内部查询或嵌套查询在另一个SQL查询的查询和嵌入式WHERE子句中。
  • 子查询用于返回将被用于在主查询作为条件的数据,以进一步限制要检索的数据。
  • 子查询可以在SELECT,INSERT,UPDATE使用,而且随着运算符如DELETE语句 =, <, >, >=, <=, IN, BETWEEN 等.
    2.书写格式:子查询(sql语句)+空格+别名
子查询

多表关联注意点

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


ER图

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


image.png

3.表名后+空格+别名

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


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,848评论 0 44
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,075评论 2 89
  • 你结束了我夜里的失眠 却让我白日里发梦得痴颠不算是高尚和沉闷午后醒来 厚重的窗帘压得我喘息困难虽然窗外阳光刺眼往来...
    弥日生阅读 228评论 0 0
  • 外面风风好大啊…困zzzzz 最近带爸妈去转转,也意外的发现的一些平时自己没太注意地方。挺好的。 回X市也挺好的。...
    WoodSage阅读 213评论 1 1
  • 我不是归人,是个过客。 【贰】 乔昀没有比现在更想跟赵星宇绝交的时候了。 等他跟着赵星宇逛了一圈回到操场的时候已经...
    风絮_alice阅读 203评论 3 3