广告
返回顶部
首页 > 资讯 > 数据库 >sql中exists的基本用法示例
  • 392
分享到

sql中exists的基本用法示例

sql exists语句sql中的exists的作用exists查询语句 2022-08-16 11:08:16 392人浏览 独家记忆
摘要

目录【exists语句的执行顺序如下】:附:exists与in比较总结:现有:班级表(A_CLASS) 学生表( STUDENT) 注:学生表(STUDENT)的classId关联班级表(A_CLASS)的主键ID

现有:班级表(A_CLASS)

sql中exists的基本用法示例

学生表( STUDENT)

sql中exists的基本用法示例

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

代码:

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

结果

sql中exists的基本用法示例

【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)

结果如果所示: 

sql中exists的基本用法示例

具体分析一下:此时的执行应该和第一次一模一样也是循环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)的数据都会被查询出来;

附:exists与in比较

in的用法相信大家很好理解。

select * from table_name where col_name [not] in(子查询);
  • 先运行子查询,生成结果集
  • 再运行外查询时,判断col_name在不在子查询里,在的话则返回该行,不在则不返回。
  • col_name的列数和子查询的列数要相对应

当外大子小时,即查询的内容很大时,判断次数少,in优于exist【子查询小用in】

当外小子大时,即查询内容很小时,代入次数少,exists优于in【子查询大用exists】

总结:

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

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

到此这篇关于sql中exists基本用法的文章就介绍到这了,更多相关sql exists的用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: sql中exists的基本用法示例

本文链接: https://www.lsjlt.com/news/33711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql中exists的基本用法示例
    目录【exists语句的执行顺序如下】:附:exists与in比较总结:现有:班级表(A_CLASS) 学生表( STUDENT) 注:学生表(STUDENT)的classId关联班级表(A_CLASS)的主键ID ...
    99+
    2022-08-16
    sql exists语句 sql中的exists的作用 exists查询语句
  • SQL PLUS基本命令的使用方法示例
    1、Oracle 中 dba,all,user, 之间的区别 1. 结论:'权限大小不同': dba_* > all_* > user_* (1) dba_* ...
    99+
    2022-11-12
  • MySQL中exists、in及any的基本用法
    【1】exists 对外表用loop逐条查询,每次查询都会查看exists的条件语句。 当 exists里的条件语句能够返回记录行时(无论记录行是多少,只要能返回),条件就为真 ,...
    99+
    2022-11-11
  • PyTorch中permute的基本用法示例
    目录permute(dims)附:permute(多维数组,[维数的组合])总结permute(dims) 将tensor的维度换位。 参数:参数是一系列的整数,代表原来张量的维度。...
    99+
    2022-11-10
  • SQL基本语法用例大全
    文章目录 SQL语法概述简单查询计算列查询条件查询范围查询使用逻辑运算符过滤数据使用IN操作符过滤数据格式化结果集模糊查询行数据过滤数据排序数据统计分析分组总计简单子查询多行子查询多表链接插入...
    99+
    2023-10-11
    sql 数据库
  • Objective-C中NSArray的基本用法示例
    NSArray的排序 + (id)studentWithFirstName:(NSString *)firstName lastName:(NSString *)lastName{...
    99+
    2022-05-19
    Objective-C NSArray
  • Vue中侦听器的基本用法示例
    目录前言一、侦听器的基本用法二、侦听器的格式三、实现刚进入页面就触发监听和深度监听深度监听深度监听返回侦听对象子属性的值最后前言 Vue 通过 watch 选项提...
    99+
    2022-11-12
  • java程序中protobuf的基本用法示例
    目录简介为什么使用protobuf定义.proto文件编译协议文件详解生成的文件Builders 和 Messages序列化和反序列化协议扩展总结简介 Protocol Buffe...
    99+
    2022-11-12
  • Echarts图表中formatter的基本用法示例
    目录1. 字符串模板1.1 x轴y轴1.2 饼图 1.3折线图,柱状图1.4多个属性2 函数模板2.1 x轴,y轴2.2提示框(tooptip)3 回调函数总结1...
    99+
    2023-02-14
    echarts中formatter属性 echart formatter echarts中formatter用法
  • vue2和vue3中provide/inject的基本用法示例
    目录前言vue2基本用法:1.provide2.inject如何成为响应式?1.方法一:函数方法2.方法二:传递thisvue3的基本用法:总结前言 昨天看一个项目代码看到了prov...
    99+
    2023-05-17
    vue中provideinject vue中provide的用法 vue中的inject
  • Android AutoCompleteTextView控件基本用法示例
    本文实例讲述了Android AutoCompleteTextView控件基本用法。分享给大家供大家参考,具体如下: 当输入部分内容之后会有相关的建议,类似于百度提示信息 1、...
    99+
    2022-06-06
    示例 Android
  • Android DatePicker和DatePickerDialog基本用法示例
    本文实例讲述了Android DatePicker和DatePickerDialog基本用法。分享给大家供大家参考,具体如下: DatePicker用来设置手机的时间和闹钟 1...
    99+
    2022-06-06
    示例 datepicker Android
  • MySQL基本语法的示例分析
    这篇文章将为大家详细讲解有关MySQL基本语法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先来看一下MySQL的最基本三大段语句,举个例子:我想将下面inst...
    99+
    2022-10-18
  • css基本语法的示例分析
    这篇文章主要介绍了css基本语法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一 概述 CSS 指层...
    99+
    2022-10-19
  • SQL中序列的用法示例
    小编给大家分享一下SQL中序列的用法示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 1、语法&...
    99+
    2022-10-19
  • SQL中Union的用法示例
    小编给大家分享一下SQL中Union的用法示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!sql union用法是什么?sql union用法的总结:UNI...
    99+
    2022-10-18
  • Android 通知的基本用法示例代码
    写android通知的时候发现Notification的setLatestEventInfo被弃用,于是搜素并整理了一下新的android通知的基本用法。 一、获取Notifi...
    99+
    2022-06-06
    示例 Android
  • SQL中游标(cursor)的基本使用实例
    目录 类型:1.普通游标2.滚动游标具体FETCH用法:Arguments总结 类型:   1.普通游标   只有NEXT操作   2.滚动游标 有多种操作 1.普通游标 DEC...
    99+
    2022-11-12
  • oracle基本查询用法入门示例
    本文实例讲述了oracle基本查询用法。分享给大家供大家参考,具体如下: 一、基本select语句 SELECT *|{[DISTINCT] column|expression [alias]...
    99+
    2022-10-18
  • axios基本用法教程示例详解
    目录axios基本用法axios提供了一下几种请求方式config是对一些基本信息的配置axios基本用法 前一段时间用了一下,现在说一下它的基本用法。 首先就是引入axios,如果...
    99+
    2023-05-20
    axios基本用法 axios基本教程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作