sql中 exists的用法

article/2025/9/2 9:08:07

现有:班级表(A_CLASS) 

学生表( STUDENT)

注:学生表(STUDENT)的classId关联班级表(A_CLASS)的主键ID

代码:

select * from STUDENT s WHERE exists (select 1 from A_ClASS c where s.CLASS_ID=c.ID)

结果

【exists语句的执行顺序如下】:

1.首先会执行外循环(select * from student)

2.外循环返回的结果每一行都会拿着去内层循环执行(此时注意,内层也是循环查询的)

ps:select * from student查询的为 (c1,c1,c2,c3);此时执行顺序应该是(

第一次:select* from A_CLASS where c1=c1,第二次:select* from A_CLASS where c1=c2,

第三次:select* from A_CLASS where c1=c1,第四次:select* from A_CLASS where c1=c2,

第五次:select* from A_CLASS where c2=c1,第六次:select* from A_CLASS where c2=c2,

第七次:select* from A_CLASS where c3=c1,第八次:select* from A_CLASS where c3=c2)

注意:此时的内层子查询如果为true,则直接返回不会再继续执行本次循环;

综上所述:第二次和第四次是不会被执行的;  第一次和第三次还有第六次是符合条件的;

所以 STUDENT表中CLASS_ID字段为(c1,c2)的数据都会被查询出来;

如果将 上述语句的=换成!=会是什么效果?

select * from STUDENT s WHERE exists (select 1 from A_ClASS c where s.CLASS_ID!=c.ID)

结果如果所示: 

具体分析一下:此时的执行应该和第一次一模一样也是循环8次分别为:

第一次:select* from A_CLASS where c1!=c1,第二次:select* from A_CLASS where c1!=c2,

第三次:select* from A_CLASS where c1!=c1,第四次:select* from A_CLASS where c1!=c2,

第五次:select* from A_CLASS where c2!=c1,第六次:select* from A_CLASS where c2!=c2,

第七次:select* from A_CLASS where c3!=c1,第八次:select* from A_CLASS where c3!=c2

但是=换成了!=;这次是第六次和第八次没有被执行,其余的全被执行,s.CLASS_ID涉及到(c1,c2,c3)并且语句都返回了true;

所以STUDENT表中CLASS_ID字段为(c1,c2,c3)的数据都会被查询出来;

总结:

1.exists执行外循环后,会拿着外循环的值,去内层查询,如果查询到就直接返回true,并且终止本次循环,如果是false,则会一直执行,直至循环完成还为false,则本次内循环不符合条件;

2.内层的判断条件不要写!=;查询的结果会不尽人意;


http://chatgpt.dhexx.cn/article/3joNnqcv.shtml

相关文章

SQL语句中EXISTS的详细用法大全

SQL语句中EXISTS的详细用法大全 前言一、建表1.在MySQL数据库建表语句2.在ORACLE数据库建表语句 二、在SELECT语句中使用EXISTS1.在SQL中使用EXISTS2.在SQL中使用NOT EXISTS3.在SQL中使用多个NOT EXISTS4.在SQL中使用多个EXISTS5.在SQL中使用NOT EXISTS和EXISTS 三、在DELETE语…

DNS服务器解析问题

DNS服务器解析问题 前言 重点: 本文摘选链接:https://www.ancii.com/aazeaa674/ 正文 问题 域名状态异常会导致网站不能访问吗? 刚修改过域名解析,为什么不生效呢? 如何查看解析是否生效呢? 刚在注…

dns服务器怎么设置

dns服务器怎么设置 在修改DNS之前需要先知道你的大DNS服务器地址是什么,那么怎么来查询DNS服务器地址呢?直接按住键盘上的“winR”,调出运行框。在输入框中输入“cmd”,点击“确定”或者回车。在管理员界面中输入命令:…

手机显示DNS服务器异常,手机dns服务器异常怎么设置

手机dns服务器异常怎么设置 内容精选 换一换 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 本章节介绍如何通过控制台重启服务器。重启服务器时,可以批量更换云手机…

小米路由器显示DNS服务器设置错误,小米路由器dns地址怎么设置

小米路由器与日常所有的路由器一样,在默认情况下都是路由器的地址作为无线设备获取的 DNS 地址。如果你想手动修改小米路由器的DNS地址,也是可以的,下面是学习啦小编给大家整理的一些有关小米路由器dns地址设置方法,希望对大家有帮…

如何设置正确的dns服务器地址,dns服务器地址如何设置

dns服务器地址如何设置 (Windows 2000、Windows XP操作系统): 1、 开机后在桌面上选定图标"网上邻居", 点击鼠标右键, 在弹出的菜单上选择"属性"项,打开"网络和拔号连接"窗口, 如图 2、…

北京联通dns服务器位置,联通DNS服务器地址怎么设置

联通DNS服务器地址怎么设置 如电脑Win7系统,以下方法设置DNS:您右键点击电脑桌“网络”图标 ,“属性” >选择“控制面板” >在“网络和共享中心”中可看到当前的网络状况,点击左边的“更改适配器设置” >右键单击“本地连接”择“属性” >选择“internet协议版本4(TCP/…

路由器显示DNS服务器设置错误,路由器dns设置错误怎么处理

一般都给家里配上了无线路由器,但是在用了无线路由器后,很容易导致电脑断网,大家一般用软件检测后上面会显示是DNS地址出现了异常,那么应该怎么解决这个问题,不让电脑频繁断网呢?下面是学习啦小编给大家整理的一些有关…

无线路由dns服务器地址,tplink无线路由器怎么设置DNS服务器地址

作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP 的国际互联网络Internet 的主体脉络,也可以说,路由器构成了Internet的骨架。在设置路由器的时候,很多用户不知道该怎么手动设置路由器的DNS服务器地址,下面我们就来看看详细的设置教程,需要的朋友可以参考下 …

Ros系统配置DNS服务器,ros设置dns服务器

ros设置dns服务器 内容精选 换一换 域名的DNS服务器定义了域名用于解析的权威DNS服务器。通过华为云注册成功的域名默认使用华为云DNS进行解析,详细内容,请参见华为云DNS对用户提供域名服务的DNS是什么?。若您选择非华为云DNS进行域名解析,可以修改域名的DNS服务器。域名注…

无线网首选dns服务器怎么设置,dns服务器设置(192.168.1.1的首选dns)

我们知道影响上网速度的因素有很多,硬件、软件等都是高速上网的基础,每个人都希望自家的网速越来快,在相同的硬件、带宽固定的情况下,如何来择优选择上网参数中的DNS服务器呢? DNS服务是网络参数必不少的一项&#xff…

dhcp服务器修改dns设置方法,dhcp服务器的dns设置方法

dhcp服务器的dns设置方法 内容精选 换一换 文件系统与服务器的连接断开,需要重新挂载。没有配置自动挂载,重启服务器后会自动断开。参考自动挂载文件系统,在云服务器设置重启时进行自动挂载。如果上述方法均不能解决您的疑问,请提交工单寻求更多帮助。 “包年/包月”计费模…

电脑系统里如何设置dns服务器

在大多数的时候,我们的电脑都是使用的静态ip,给电脑开机就默认获取了ip地址,但有些时候我们要访问一个网页时需要使用固定的ip地址和dns服务器该怎么办呢?下面就和大家分享一下电脑系统里如何设置dns服务器吧。 这些重装系统的方…

dns简单说明及配置

dns IP地址与dns的关系 dns协议是用来将域名转换为IP地址的协议 IP地址是面向主机的 域名是面向用户的 域名和IP的对应关系保存在hosts文件中 dns系统 1、一个系统管理,维护系统内每个主机IP和主机名的对应关系 2、如果新计算机接入网络,要将这个…

笔记本查看WIFI密码

查看密码四步走 第一步 右键WIFi图标,打开“网络与Internet设置” 第二步 打开网络共享中心 第三步 点击连接WIFI -->> 选择无限属性 第四步 查看密码

如何在计算机修改wifi密码,wifi修改密码,教您电脑怎么修改wifi密码

使用wifi的用户都晓得,经过第一次密码验证后,之后电脑、手机在打开wifi时,经常会自动连接wifi,当再一次连接wifi需要输入密码的时候却忘记密码了。那么我们就需要改WIFI密码,那么电脑怎么修改wifi密码?下面…

电脑查看连接过的WiFi密码

WiFi连接之后后面一般都是自动连接,时间久了难免会忘记WiFi密码,当不方便登录路由器后台查看WiFi密码时候,可以使用连接过该WiFi的电脑查看 1、在window运行窗口输入"cmd"命令,进行命令行终端 2、在命令行终端中输入“…

wifi密码公式计算机,求一些高数公式,做wifi密码用?

满意答案 thyk7283 2018.06.08 采纳率:55% 等级:13 已帮助:8612人 1)∫kdxkxc 2)∫x^udx(x^(u1))/(u c 3)∫1/xdxln|x|c 4) ∫a^xdx(a^x)/lnac 5)∫e^xdxe^xc 6)∫sinxdx-cosxc 7)∫cosxdxsinxc 8)∫1/(cosx)^2dxtanxc 9)∫1/(sinx)^2dx-c…

arp欺骗盗取邻居wifi密码

文章开始,解释一下何为arp欺骗: ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议&#xff…

只需三步!查看笔记本电脑连接的WiFi密码

1.在左下角搜索框输入cmd打开命令提示符 2.输入命令: netsh wlan show profiles 3.输入命令行:netsh wlan show profiles WiFi名 keyclear 比如我要查看的是FAST_B162这个WiFi,那我就把 WiFi名 替换为 FAST_B162 netsh wlan show profile…