什么是子查询?

什么是子查询?,第1张

子查询就是查询语句的嵌套,即在外部查询中还包含一个内部查询。当一个查询是另一个查询的条件时,称之为子查询。子查询可以使用几个简单命令构造功能强大的复合命令,子查询最常用于SELECT语句的where子句中。另外,子查询可作为一个临时表来使用,完成更为复杂表联结数据的检索功能。子查询类型1.SOHSOHwhere类型子查询用major.sql脚本初始化数据库建表环境,以下语句就是一个标准的子查询例子,其功能是检索出主修学分大于国际贸易专业学分的专业。

SELECT*FROMMajorwheremajorTotalCredit>(SELECTmajorTotalCreditFROMMajorWHEREmajorName='国际贸易')where语句后面条件的括号内为一个子查询:SELECTmajorTotalCreditFROMMajorwheremajorName='国际贸易'查询出来的结果将作为外部查询的条件参数,如本子查询检索到值为196,则外部查询相当于如下语句:SELECT*FROMMajorwheremajorTotalCredit>196外部查询的结果值则为整个查询语句的最终检索数据集,如图子查询 *** 作1所示

子查询 *** 作1

66037788712

2.from类型子查询用student_info.sql脚本初始化数据库建表环境,如何实现从学生表(student_info)查询出有不及格科目学生的平均成绩?分两步可实现上面的功能要求。

((1)查询出有不及格科目的学生。

select*fromstudent_infowheremath

selectsn

方法/步骤

1

首先,在一个查询中的查询结果作为外层查询的条件,可以用IN关键字,代码如下:

SELECT * FROM city WHERE CountryCode IN (SELECT Code FROM country)

如下图所示:

2

其次,外层查询的条件不在内层查询结果,可以用NOT IN关键字,代码如下:

SELECT * FROM city WHERE CountryCode NOT IN (SELECT Code FROM country)

如下图所示:

3

使用EXISTS关键字查询时,内层查询语句不返回查询的记录,而是返回一个Boolean值;当内层查询返回的值为true时,外层查询语句将进行查询,如果返回false时,将不进行查询或查询结果为空,代码如下:

SELECT * FROM city WHERE EXISTS (SELECT Name FROM country)

如下图所示:

4

由第三步可知,与EXISTS相对的是NOT EXISTS,当内层查询返回的值为false时,外层查询语句将进行查询,如果返回true时,将不进行查询或查询结果为空,代码如下:

SELECT * FROM city WHERE NOT EXISTS (SELECT Name FROM country)

如下图所示:

5

满足其中的任一条件,就可以通过该条件来执行外层查询语句,用关键字ANY,代码如下:

SELECT * FROM city WHERE Population >= ANY (SELECT Population FROM country)

如下图所示:

6

子查询还包含比较运算符,有“>="、“<="、"!="等关键字,代码如下:

SELECT * FROM city WHERE Population >= (SELECT Population FROM country WHERE Name = 'Afghanistan')

SELECT * FROM city WHERE Population <= (SELECT Population FROM country WHERE Name = 'Afghanistan')

SELECT * FROM city WHERE Population != (SELECT Population FROM country WHERE Name = 'Afghanistan')

如下图所示:

7

满足所有条件,只有满足内层查询语句返回所有结果,代码如下:

SELECT * FROM city WHERE Population >= ALL (SELECT Population FROM country WHERE Name = 'Afghanistan')

如下图所示:

http://jingyan.baidu.com/article/73c3ce280d68f2e50243d960.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9562607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存