Mysql中的进阶增删查改操作(二)

一.联合查询

步骤
1.进行笛卡尔积
2.列出连接条件
3.根据需求再列出其他条件
4.针对列进行精简(可以使用聚合函数)
我们先搭建一个多表查询的框架
在这里插入图片描述
这样一个多表查询就搭建出来了,下面我们根据某些查找条件来写出相应的表.

1.内连接

我们在写多表查询的时候要严格遵守4个步骤

一. 查询许仙同学的成绩
1.进行笛卡尔积
在这里插入图片描述
2.连接条件
我们在表中可以发现 student_id和id可以作为连接条件
在这里插入图片描述
(3)根据需要补充其他条件

查询许仙的成绩,我们就要把许仙的名字突出出来

在这里插入图片描述
(4)根据列进行精简
在这里插入图片描述
二.查询所有同学的总成绩,及同学的个人信息
(1)进行笛卡尔积
在这里插入图片描述
(2)连接条件

在这里插入图片描述
(3)根据聚合函数来计算总成绩
在这里插入图片描述
三.查询所有同学的成绩,及同学的个人信息

查询同学信息和单科成绩,必须要有课程名,所以就涉及到了三张表,student,course,score.

(1)进行笛卡尔积
在这里插入图片描述
(2) 连接条件

三张表,就需要两个连接条件来进行连接,我们可以发现,score表中,有student_id和course_id,我们就可以用score表作为中间媒介来进行连接

在这里插入图片描述
(3)进行精简.
在这里插入图片描述

2.外链接

2.1左外连接

在这里插入图片描述
在这里插入图片描述

2.2右外连接

在这里插入图片描述
在这里插入图片描述

3.自连接

自己和自己连接
显示所有“计算机原理”成绩比“Java”成绩高的成绩信息
在这里插入图片描述
根据条件来进行筛选
在这里插入图片描述
选择课程序号
在这里插入图片描述

4.子查询

多个简单的sql合并为一个复杂的sql

查询与“不想毕业” 同学的同班同学:
在这里插入图片描述
在这里插入图片描述

5.合并查询

案例:查询id小于3,或者名字为“Java”的课程
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值