数据库-连接查询

数据库连接查询可以进行多表联查,可以同时展示多个表的数据,方便进行查阅。那么连接查询分为多种方式,我们可以根据要求筛选合适的方式进行查询。下面我们来讲解一下怎么进行多表联查。

首先连接查询大致分为3种形式,分别为:
内连接,外连接,交叉连接

1、表格数据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、详解

(1)内连接
内连接,找的是两个表里共有数据(即交集),关键字是inner join on,inner join连接两个表,on是连接字段,如下所示,这两张表分别为b1表,b2表。
b1:(学号,年龄)
b2:(学号,成绩)
在这里插入图片描述
在这里插入图片描述
通过上边这俩表可以看出来,b1表里边有1,2,3号学生,b2表里边有1,2,4号学生,那么内连接是查询两个表里边共有的部分,查询结果应该是1,2号学生。
如下:
规则形式
在这里插入图片描述
不规则形式
内连接的不规则形式,可以用逗号连接两张表,连接条件用where表示
在这里插入图片描述
(2)外连接
外连接分为:左外,右外,全外
1)左外:left join on 左外连接是以左表为主,右表为辅,主表有的数据,辅表没有,则辅表用空补齐主表。如下:
在这里插入图片描述
2)右外:right join on 右外连接是以右表为主,左表为辅,主表有的数据,辅表没有,则辅表用空补齐主表。如下
在这里插入图片描述

3)全外:左外+union+右外 全外是互为主表,即并集。
在这里插入图片描述
(3)交叉连接
交叉连接的关键字是:cross join。交叉连接是查看两个表的组合有多少个,完全匹配。
在这里插入图片描述

3、练习

例1:
查询参加考试的学生的信息
在这里插入图片描述

分析:
题目要求是“找参加考试的学生的信息”,所以只要成绩表里有成绩的人,都是参加考试的人。展示的字段分别来源于两个表。
stud.sid是表示sid是哪个表的,因为stud表里有sid
score表里也有sid,所以如果前边没有标明表的话,会报错

例2:
哪个学生,哪门课,考了多少分
在这里插入图片描述
分析:
上边这个例子涉及到了3个表,当多表连接时,中间表就尤为重要了,它起到承上启下的作用,那么我们这个例子用的中间表是成绩表(score),因为成绩表里有学号(sid),学号来源于学生表,起承上作用;成绩表中还有课程号(cid),课程号来源于课程表(course),启下作用。

例3:
查询90分以上的姓名,课程,成绩
在这里插入图片描述
例4:
查询姓名,课程,成绩,并按照成绩升序排序
在这里插入图片描述

  • 14
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值