SQL进阶-多表查询及相关习题讲解

前言

紧接着之前叙述过的SQL常用语句总结,在这一篇博客中南国也有对多表查询进行了一些叙述,但经过这段时间的笔试面试经历,感觉自己对这块知识的理解 还不够深入。
所以,在这篇SQL进阶中,南国对SQL经常用到的多表知识点在做一个详细的讲解。

提到关系数据库中的多表查询时,你会想到什么呢??
你是不是想说多表查询就是同时查询几张不同的表 通过表与表之间的数据的主外键联系 查询得到想要的数据结果。 当然这个回答已经很不错了,准确的说 多表查询还可以包括同一个数据表中查询大于某行特定数据的查询。

多表查询有如下几种:

  • 合并结果集;
  • 连接查询
    内连接
    外连接:左外连接,右外连接,全外连接(MySQL不支持)
    自然连接
  • 子查询

下面我们对这些方法展开叙述:

1. 合并结果集

这个在前面的博客中,这里我简要叙述一下:
1.作用:合并结果集就是把两个select语句的查询结果合并到一起!
2.合并结果集有两种方式:

  • UNION:去除重复记录,例如:SELECT * FROM t1 UNION SELECT * FROM t2;
  • UNION ALL:不去除重复记录,例如:SELECT * FROM t1 UNION ALL SELECT * FROM t2。
    在这里插入图片描述
    在这里插入图片描述
    3.要求:被合并的两个结果:列数、列类型必须相同。

2. 连接查询

连接查询就是求出多个表的乘积,例如t1连接t2,那么查询出的结果就是t1*t2。
在这里插入图片描述
连接查询会产生笛卡尔积,假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值