我的编程空间,编程开发者的网络收藏夹
学习永远不晚

EXISTS和NOT EXISTS介绍

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

EXISTS和NOT EXISTS介绍

带有(NOT) EXISTS谓词的子查询

1. 基本知识介绍

1. EXISTS代表存在量词

  1. 带有EXISTS谓词的子查询不反回任何数据,值产生逻辑真值**“true”**或逻辑假值 “false”

    使用EXISTS查询后

    1. 若内存查询结果非空,则外层的WHERE子句返回真值,否则返回假值
    2. 由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名没有意义
  2. 例题

//查询所有选修了 1号课程的学生姓名SELECT Sname FROM Student WHERE EXISTS (SELECT*               FROM SC               WHERE Sno = Student.Sno AND Cno='1');

2. NOT EXISTS

  1. 与EXIST谓词对应的是NOT EXISTS谓词,使用存在量词NOT EXISTS后,若内层查询结果为空,则外层的WHERE子句返回真值,否则返回假值
  2. 例题
//查询没有选修1号课程的学生姓名SELECT Sname FROM Student WHER NOT EXISTS(SELECT*                 FROM SC                WHERE Sno = Student.Sno AND Cno='1');

2. 进阶

  1. 一些带有EXISTS或者NOT EXISTS谓词的子查询,不可以被其他形式的子查询等价代替,但是所有带有IN谓词、比较运算符、ANY或ALL谓词的子查询都可以用带有EXISTS谓词的子查询等价替换;

  2. 例题

//查询和“刘成”在同一系学习的学生//法1 用INSELECT Sname ,Sno,Sdept FROM Student WHERE Sdept IN(SELECT Sdept               FROM Student               WHERE Sname = '刘成');              //法二 用EXISTSSELECT Sname,Sno,SdeptFROM Student S1WHERE EXISTS   (SELECT *              FROM Student S2             WHERE S1.Sdept=S2.Sdept AND S2.Snmae='刘成');

3. 查询选修了所有课程的学生姓名 重点例题详解

//查询选修了所有课程的学生姓名SELECT Sname FROM Student WHERE NOT EXISTS   (SELECT*                 FROM Course                WHERE NOT EXISTS                (SELECT*                FROM SC                WHERE Sno = Student.Sno AND Cno = Course.Cno));   SELECT*          FROM Course         WHERE NOT EXISTS//等价于   SELECT*          FROM Course         WHERE false

来源地址:https://blog.csdn.net/qq_57437175/article/details/123952321

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

EXISTS和NOT EXISTS介绍

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

下载Word文档

猜你喜欢

sql中exists和not exists怎么用

这篇文章主要介绍了sql中exists和not exists怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。exists:强调的是是否有返回集,不需知道具体返回的是什么,
2023-06-29

sql中exists和not exists怎么使用

在SQL中,EXISTS和NOT EXISTS是用来检查子查询是否返回结果的条件表达式。- EXISTS:如果子查询返回至少一行结果,则返回true,否则返回false。例如:```sqlSELECT * FROM table1 WHERE
2023-08-16

in与exists和not in 与 not exists的区别

1、in 与 exists:   外表大,用IN;内表大,用EXISTS;   原理:   用in:外表使用了索引,直接作hash连接;   用exists:内表使用了索引,外表作loop循环再进行匹配;
in与exists和not in 与 not exists的区别
2022-01-25

oracle中的exists 和not exists 用法详解

在Oracle中,EXISTS和NOT EXISTS是用来检查子查询是否返回任何行的条件运算符。- EXISTS:当子查询返回至少一行时,EXISTS条件返回TRUE。如果子查询没有返回任何行,则返回FALSE。- NOT EXISTS:当
2023-09-12

使用SQL中的EXISTS和NOT EXISTS的语法

SQL中的exists和not exists的用法,需要具体的代码示例在SQL中,exists和not exists是一对常用的谓词(predicate),用于判断一个子查询(subquery)是否返回了结果集。exists用于检查子查询
使用SQL中的EXISTS和NOT EXISTS的语法
2024-02-22

详细聊聊sql中exists和not exists用法

在SQL中,EXISTS和NOT EXISTS是用于判断子查询中是否存在或不存在记录的条件运算符。1. EXISTS用法:EXISTS语句用于判断子查询是否返回结果,并返回布尔值,如果子查询返回至少一条记录,则返回true,否则返回fals
2023-08-08

SQL中NOT EXISTS的使用

NOT EXISTS是SQL中的一个条件运算符,用于检查子查询的结果集是否为空。它的语法如下:```SELECT column1, column2, ...FROM table1WHERE NOT EXISTS (子查询)```子查询可以是
2023-09-22

sql中not exists怎么使用

在SQL中,NOT EXISTS 是一个条件运算符,用于检查子查询的结果是否为空。它用于在主查询中过滤掉那些在子查询中存在的记录。使用 NOT EXISTS,你需要编写一个子查询,并在主查询中使用该条件运算符来检查子查询的结果。子查询可以是
2023-08-08

编程热搜

目录