MySQL知识学习——第十四天:使用子查询

前言

周二,继续学习!

子查询

前面我们学习的都是SELECT语句的简单用法(从单个数据库表中检索数据的单条语句),今天我们就来学习一下稍微复杂的用法。

查询(query) 任何SQL语句都是查询。但此术语一般指SELECT 语句。

SQL还允许创建子查询( subquery) ,即嵌套在其他查询中的查询

利用子查询进行过滤

我们现在有下面两张表,第一张是student,第二张是teacher,现在我们想找出Poul老师的学生的年龄是谁?怎么办呢?

在这里插入图片描述

在这里插入图片描述
首先是找到Poul老师的学生
在这里插入图片描述
然后再找他们的年龄
在这里插入图片描述
上面用到了我们之前学习的IN语句,上面通过两个查询完成了,我们也可以通过一个查询来实现
在这里插入图片描述
在SELECT语句中,子查询总是从内向外处理。

在这里插入图片描述

在WHERE子句中使用子查询能够编写出功能很强并且很灵活的SQL语句。对于能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。

在这里插入图片描述

子查询一般与IN操作符结合使用,但也可以用于测试等于(=)、不等于(<>)等

作为计算字段使用子查询

前面我们学习了计算字段,那么今天我们来复习一下,看下面的例子,我们想得到每位老师所教的学生人数,怎么办呢?

在这里插入图片描述
返回三列,其中第三列是计算字段,通过子查询得到的
里面的子查询用到了完全限定列名(如果多个表中有相同列名就要使用这种方法),如果不用回导致结果出错。

今天就到这里了~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值