sql的嵌套查询_sqlserver跨库查询

sql的嵌套查询_sqlserver跨库查询SQLServer数据嵌套查询

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1. 概述

在 SQL 中,一个形如 SELECT-FROM-WHERE的语句称为一个查询快;当一个查询块存在于另一个查询块的 WHERE子句或 HAVING子句中时,称前一个查询块为子查询,称包含它的查询块为父查询或外部查询;
采用子查询的查询称为嵌套查询,嵌套查询可将多个简单的查询构造成一个复杂的查询,体现了 SQL 强大的查询能力;
嵌套查询在执行时由内向外处理语句,因为处理父查询时要用到子查询的查询结果,所以子查询的处理要先于它的父查询;

2. 普通子查询

普通子查询指子查询可独立完成的查询,它的执行过程为:先执行子查询,然后将子查询的结果用于构造父查询的查询条件,再由父查询根据查询条件确定结果集合;
普通子查询一般可分为如下两种:

2.1. 子查询执行后返回一个值时,可在子查询与父查询之间用比较运算符连接

2.2. 子查询执行后返回一组值时,不能直接用比较运算符连接子查询,可在比较运算符与子查询之间插入关键字 ANYALL实现查询过程

  1. ANY的含义为任意一个,与比较运算符连接并写在自子查询之前,表示与查询结果中的任意值进行比较;
    例子:从数据表 B,O 中查询就读 “工商” 专业的学生姓名
select Name
from B
where b= any (select b from O where b='工商')

20220202

  1. ALL的含义为全部,与比较运算符连接并写在子查询之前,表示与查询结果中的所有值进行比较;

3. 相关子查询

相关子查询指子查询的查询条件需要引用父查询中相关属性值的查询,是特殊的嵌套查询;
这类查询在执行时,先选取父查询中的数据表的第一个元组,内部的子查询对其中的先关属性值进行查询,再由父查询根据子查询返回的结果判断是否满足查询条件,重复此过程,知道处理完父查询中数据表的每一个元组;
例子:从数据表 B,O 中国查询没有就读“工商”专业的学生姓名

select distinct Name
from B
where '2022090102'<> all (select ID from O where ID=B.ID )

20220202
<> all 表示不等于子查询结果中的任何一个值,可使用 NOT IN 代替;
例子:用 EXISTS关键字从数据表 B,O 中国查询没有就读“工商”专业的学生姓名

select distinct Name
from B
where not exists (select * from O where ID=B.ID and ID='2022090102')

20220202
EXISTS表示存在,用来判断子查询的结果是否为空,若查询结果不为空返回逻辑值“真”,反之返回逻辑值 “假”;在 EXISTS 前加上 NOT表示不存在,返回值与 EXISTS 相反;

注意: EXISTSNOT EXISTS的返回值不含有任何数据,只要逻辑值 “真” 或 “假”,即一般在子查询的 SELECT的语句后用 “*” 简写列名;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169424.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 龙芯CPU架构_龙芯mips架构

    龙芯CPU架构_龙芯mips架构龙芯架构龙芯指令集:CPU访存指令24个全部来自MIPSCPU算数指令(ALU)10个全部来自MIPSCPU算数指令14个全部来自MIPSCPU乘除指令12个来自MIPS12个来自龙芯(其中8个重复MIPS指令功能)CPU跳转分支指令20个全部来自MIPSCPU位移指令15个全部来自MIPSCPU特殊指令2个全部来自MIPSCPU异常指令12个全…

    2025年9月7日
    15
  • stringtokenizer类的hasmoretokens_java.util

    stringtokenizer类的hasmoretokens_java.utilStringTokenizer:字符串分隔解析类型属于:java.util包。1、构造函数。1.StringTokenizer(Stringstr):构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。2.StringTokenizer(Stringstr,Stringde…

    2022年8月11日
    3
  • RewriteCond和13个mod_rewrite应用举例Apache伪静态

    RewriteCond和13个mod_rewrite应用举例Apache伪静态1.给子域名加www标记RewriteCond%{HTTP_HOST}^([a-z.]+)?example.com$[NC]RewriteCond%{HTTP_HOST}!^www.[NC]RewriteRule.?http://www.xample.com%{REQUEST_URI}[R=301,L]这个规则抓取二级域名的%1变量,如果不是以www开始,

    2022年6月6日
    31
  • LaTeX参考文献引用显示?问号解决办法!!!!「建议收藏」

    LaTeX参考文献引用显示?问号解决办法!!!!「建议收藏」在使用Latex之前,我们一般会借用已有的论文模板,在模板基础上加入我们自己的文章内容,随后编译成PDF文件,其基本流程就是:Latex->Bibtex->Latext->Latex。1、第一步点击Latex编译,可以获得*.aux文件、.dvi文件、.log文件以及*.gz文件;2、第二步点击Bibtex编译,可以获得*.blg(性能监视器文件)和*.bbl文件;3、第三…

    2025年10月11日
    2
  • 打造自己的Android源码学习环境之一:序[通俗易懂]

    打造自己的Android源码学习环境之一:序[通俗易懂]打造自己的Android源码学习环境之一:序为什么要打造自己的Android源码学习环境有一个可以编译的Android源码环境,可以在任何自己想了解的源码中加上log信息,验证自己的理解是否准确,有助于理解Android的运行细节。做Android开发,了解Android的运行机制和原理是很有帮助的,尤其是想对Androidframework进行深度定制。面向的读者如果在手机厂商或者Android

    2022年5月5日
    43
  • 解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网

    解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网最近在VMware虚拟机里玩Centos,装好后发现上不了网。经过一番艰辛的折腾,终于找到出解决问题的方法了。最终的效果是无论是ping内网IP还是ping外网ip,都能正常ping通。方法四步走:第一步,我们进入/etc/sysconfig/network-scripts目录,查看该目录有没有形如ifcfg-XXX的文件:如果你看不到以ifcfg-打头的文件(ifcfg-lo除外),…

    2022年5月12日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号