当前位置:数据库 > > 正文

sqlserver基础查询语句(SQL Server子查询的深入理解)

时间:2021-10-06 01:58:28类别:数据库

sqlserver基础查询语句

SQL Server子查询的深入理解

当由where子句指定的搜索条件指向另一张表时,就需要使用子查询或嵌套查询。

1 子查询

子查询是一个嵌套在select、insert、update或delete语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询。

1.1语法规则:

子查询的select查询总使用圆括号括起来不能包括compute或for browse子句如果同时指定top子句,则可能只包括order by子句子查询最多嵌套32层,个别查询可能会不支持32层嵌套任何可以使用表达式的地方都可以使用子查询,主要它返回的是单个值如果某个表只出现在子查询中而不出现在外部查询中,那么该表中的列就无法包含在输出中

1.2 语法格式:

where 查询表达式 [not] in(子查询)where 查询表达式 比较运算符 [any|all] (子查询)where [not] exists (子查询)

2 嵌套查询

嵌套查询是指将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询。

嵌套查询中上层的查询块称为外侧查询或父查询,下层查询块称为内层查询或子查询。SQL语言允许多层嵌套,但是在子查询中不允许出现order by子句,order by子句只能用在最外层的查询中。

嵌套查询的处理方法是:先处理最内侧的子查询,然后一层一层地向上处理,直到最外层的查询块。

2.1 简单的嵌套查询

子查询的运算符含有=、<>、<、>、<=、>=

三个查询:

第一个:查询年纪>25的老师所教的学生

第二个:查询年纪>25的老师

第三个:验证查询到的学生信息

sqlserver基础查询语句(SQL Server子查询的深入理解)

对比:当子查询中的分那会的结果不是一个时,父查询无法正常工作

sqlserver基础查询语句(SQL Server子查询的深入理解)

2.2 带IN的嵌套查询

当子查询返回一系列值时,适合带IN的嵌套查询。

sqlserver基础查询语句(SQL Server子查询的深入理解)

2.3 NOT IN

sqlserver基础查询语句(SQL Server子查询的深入理解)

2.4 SOME

sqlserver基础查询语句(SQL Server子查询的深入理解)

2.5 ANY

sqlserver基础查询语句(SQL Server子查询的深入理解)

2.6 ALL

sqlserver基础查询语句(SQL Server子查询的深入理解)

2.7 EXIST

sqlserver基础查询语句(SQL Server子查询的深入理解)

总结

到此这篇关于SQL Server子查询的文章就介绍到这了,更多相关SQL Server子查询内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!

上一篇下一篇

猜您喜欢

热门推荐