前言
周二,继续学习!
子查询
前面我们学习的都是SELECT语句的简单用法(从单个数据库表中检索数据的单条语句),今天我们就来学习一下稍微复杂的用法。
查询(query) 任何SQL语句都是查询。但此术语一般指SELECT 语句。
SQL还允许创建子查询( subquery) ,即嵌套在其他查询中的查询。
利用子查询进行过滤
我们现在有下面两张表,第一张是student,第二张是teacher,现在我们想找出Poul老师的学生的年龄是谁?怎么办呢?
首先是找到Poul老师的学生
然后再找他们的年龄
上面用到了我们之前学习的IN语句,上面通过两个查询完成了,我们也可以通过一个查询来实现
在SELECT语句中,子查询总是从内向外处理。
在WHERE子句中使用子查询能够编写出功能很强并且很灵活的SQL语句。对于能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。
子查询一般与IN操作符结合使用,但也可以用于测试等于(=)、不等于(<>)等
作为计算字段使用子查询
前面我们学习了计算字段,那么今天我们来复习一下,看下面的例子,我们想得到每位老师所教的学生人数,怎么办呢?
返回三列,其中第三列是计算字段,通过子查询得到的
里面的子查询用到了完全限定列名(如果多个表中有相同列名就要使用这种方法),如果不用回导致结果出错。
今天就到这里了~