EXISTS 和NOT EXISTS子查询

EXISTS子查询

语法:  

SELECT ……… FROM 表名 WHERE EXISTS (子查询);

例:

SELECT `studentNo` AS 学号,`studentResult` 成绩 FROM `result`
WHERE EXISTS(
  /*查询LOgic Java最后一次考试成绩大于80的记录*/
  SELECT * FROM `result` WHERE `subjectNo`=(
    SELECT `subjectNo` FROM `subject` WHERE `subjectName` = `Logic Java`
)AND `examDate` = (
  SELECT MAX(`examDate`) FROM `result` WHERE `subjectNo`=(
    SELECT `subjectNo` FROM `subject` WHERE `subjectName` = `Logic Java`
)
  )AND `studentResult` >80
  )AND `subjectNo`=(
    SELECT `subjectNo` FROM `subject`  WHERE `subjectName` = `Logic Java`
)ORDER BY `studentResult` DESC LIMIT 5;

附注: EXISTS关键字后的参数是一个任意的子查询,如果该子查询有返回行,则EXISTS子查询         的结果为true ,此时再执行外层查询,反之查询结果没有返回行,则为false,外层查询将不         执行.

NOT EXISTS子查询

语法:

SELECT ……… FROM 表名 WHERE NOT EXISTS (子查询);

例:

SELECT AVG(studentResult)+5 AS 平均分 FROM result
WHERE NOT EXISTS(
  /*查询Logic Java最后一个次考试成绩小于60 的记录*/
  SELECT * FROM `result` WHERE `subjectNo` = (
    SELECT `subjectNo` FROM `subject` WHERE `subjectName` = `Logic Java`
)AND `examDate` = (
  SELECT MAX(`examDate`) FROM `result` WHERE `subjectNo` = (
    SELECT `subjectNo` FROM `subject` WHERE `subjectName` = `Logic Java`
)
)AND `sutdentResult`>60
) AND `examDate` = (
  SELECT MAX(`examDate`) FROM `result` WHERE `subjectNo` = (
    SELECT `subjectNo` FROM `subject` WHERE `subjectName` = `Logic Java`
  )
)

附注:

         NOT EXISTS 为EXISTS的取反操作,表示不存在.

         当子查询没有返回行时,结果为true,反之亦然.

子查询注意事项

  1. 子查询语句可以嵌套在SQL语句中任何表达式出现的位置
  2. 嵌套在SELECT语句中的SELECT子句中的子查询如下:

         语法:  SELECT (子查询) FROM 表名;

  3.嵌套在SELECT语句的FROM子句中的子查询语句如下:

         语法:  SELECT  *  FROM (子查询) AS 别名;

  4 只要出现在子查询中而没有出现在父查询中的表不能包含在输出列.

MySQL高级查询(二)的更多相关文章

  1. accp8.0转换教材第4章MySQL高级查询(二)理解与练习

    知识点:EXISTS子查询.NOT EXISTS子查询.分页查询.UNION联合查询 一.单词部分 ①exist存在②temp临时的③district区域 ④content内容⑤temporary暂时 ...

  2. mysql 高级查询二

    各种showshow columns from my_student;show grants for root;show aviables;show processlist;show table st ...

  3. 第四章 MySQL高级查询(二)

    第四章 MySQL高级查询(二) 一.EXISTS子查询 在执行create 或drop语句之前,可以使用exists语句判断该数据库对像是否存在,返回值是true或false.除此之外,exists ...

  4. 第三章 MySQL高级查询(一)

    第三章 MySQL高级查询(一) 一.SQL语言的四个分类 1.       DML(Data Manipulation Language)(数据操作语言):用来插入,修改和删除表中的数据,如INSE ...

  5. MySQL 高级查询操作

    目录 MySQL 高级查询操作 一.预告 二.简单查询 三.显示筛选 四.存储过程 五.查询语句 1.作为变量 2.函数调用 3.写入数据表 备注 附表一 附表二 相关文献 博客提示 MySQL 高级 ...

  6. python进阶09 MySQL高级查询

    python进阶09 MySQL高级查询 一.筛选条件 # 比较运算符 # 等于:= 不等于:!= 或<> 大于:> 小于:< 大于等于>= 小于等于:<= #空: ...

  7. MySQL高级查询与编程作业目录 (作业笔记)

    MySQL高级查询与编程笔记 • [目录] 第1章 数据库设计原理与实战 >>> 第2章 数据定义和操作 >>> 2.1.4 使用 DDL 语句分别创建仓库表.供应 ...

  8. MySQL高级查询与编程笔记 • 【目录】

    章节 内容 实践练习 MySQL高级查询与编程作业目录(作业笔记) 第1章 MySQL高级查询与编程笔记 • [第1章 数据库设计原理与实战] 第2章 MySQL高级查询与编程笔记 • [第2章 数据 ...

  9. 2.mysql高级查询

    01.SQL高级查询_排序     1.排序语句:order by 排序字段名  asc(默认的-升序) / desc(降序);     2.例如:查询所有服装类商品,将查询结果以价格升序排序:   ...

随机推荐

  1. 菜单栏—View(视图)菜单

  2. Spring Web MVC(三)之注解

    [toc] spring web mvc 基于注解的优化 我写的注解是按照spring web的部件分类写的,这样的话比较方便查看,大家感觉有用的话可以分享个别人,希望对对更多的人有帮助.毕竟零基础开 ...

  3. 关于C#开发 windows服务进程

    最近在做一个物联网项目,其中有一个模块是需要实现热水工程的自动化补水和回水功能 实现的方式有多种,我选用了VS C#的Windows服务方式. 首先是创建一个windows服务项目(名称随你喜欢的规范 ...

  4. Spring 事务管理笔记

    本文为 Spring 框架的事务管理学习笔记,官网文档地址为:Transaction Management,隔离级别及传播属性解释来自 org.springframework.transaction. ...

  5. linux使用bbswitch+nvidia-xrun取代bumblebee

    nvidia-xrun的比bumblebee使用nvidia optimus的性能更好,关键是xrun支持Vulkan. 本文保存并更新在github:levinit/itnotes/linux/ar ...

  6. poj 3683 2-sat建图+拓扑排序输出结果

    发现建图的方法各有不同,前面一题连边和这一题连边建图的点就不同,感觉这题的建图方案更好. 题意:给出每个婚礼的2个主持时间,每个婚礼的可能能会冲突,输出方案. 思路:n个婚礼,2*n个点,每组点是对称 ...

  7. Prism for Xamarin.Forms

    一.使用环境 OS:Win 10 16273 VS:VS2017- 15.3.4 Xamarin:4.6.3.4,nuget:2.4 Android Emulator:Visual Studio fo ...

  8. POJ 3463 最(次)短路条数

    Sightseeing Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9497   Accepted: 3340 Descr ...

  9. JMeter打开脚本失败 如何解决?

    最近有碰到JMeter打开之前的脚本,报错了,见下图: 后来发现这是因为之前保存脚本的 jmeter 和这次打开脚本的 jmeter 版本不一致(图一)或者版本一致而插件没有保持同步(图二)的原因: ...

  10. 201521123020《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 运用到了equ ...