MySQL高级查询(二)
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,反之亦然.
子查询注意事项
- 子查询语句可以嵌套在SQL语句中任何表达式出现的位置
- 嵌套在SELECT语句中的SELECT子句中的子查询如下:
语法: SELECT (子查询) FROM 表名;
3.嵌套在SELECT语句的FROM子句中的子查询语句如下:
语法: SELECT * FROM (子查询) AS 别名;
4 只要出现在子查询中而没有出现在父查询中的表不能包含在输出列.
MySQL高级查询(二)的更多相关文章
- accp8.0转换教材第4章MySQL高级查询(二)理解与练习
知识点:EXISTS子查询.NOT EXISTS子查询.分页查询.UNION联合查询 一.单词部分 ①exist存在②temp临时的③district区域 ④content内容⑤temporary暂时 ...
- mysql 高级查询二
各种showshow columns from my_student;show grants for root;show aviables;show processlist;show table st ...
- 第四章 MySQL高级查询(二)
第四章 MySQL高级查询(二) 一.EXISTS子查询 在执行create 或drop语句之前,可以使用exists语句判断该数据库对像是否存在,返回值是true或false.除此之外,exists ...
- 第三章 MySQL高级查询(一)
第三章 MySQL高级查询(一) 一.SQL语言的四个分类 1. DML(Data Manipulation Language)(数据操作语言):用来插入,修改和删除表中的数据,如INSE ...
- MySQL 高级查询操作
目录 MySQL 高级查询操作 一.预告 二.简单查询 三.显示筛选 四.存储过程 五.查询语句 1.作为变量 2.函数调用 3.写入数据表 备注 附表一 附表二 相关文献 博客提示 MySQL 高级 ...
- python进阶09 MySQL高级查询
python进阶09 MySQL高级查询 一.筛选条件 # 比较运算符 # 等于:= 不等于:!= 或<> 大于:> 小于:< 大于等于>= 小于等于:<= #空: ...
- MySQL高级查询与编程作业目录 (作业笔记)
MySQL高级查询与编程笔记 • [目录] 第1章 数据库设计原理与实战 >>> 第2章 数据定义和操作 >>> 2.1.4 使用 DDL 语句分别创建仓库表.供应 ...
- MySQL高级查询与编程笔记 • 【目录】
章节 内容 实践练习 MySQL高级查询与编程作业目录(作业笔记) 第1章 MySQL高级查询与编程笔记 • [第1章 数据库设计原理与实战] 第2章 MySQL高级查询与编程笔记 • [第2章 数据 ...
- 2.mysql高级查询
01.SQL高级查询_排序 1.排序语句:order by 排序字段名 asc(默认的-升序) / desc(降序); 2.例如:查询所有服装类商品,将查询结果以价格升序排序: ...
随机推荐
- (转载)公开的海量数据集 Public Research-Quality Datasets
转载自:http://rensanning.iteye.com/blog/1601663 海量数据数据集 海量数据(又称大数据)已经成为各大互联网企业面临的最大问题,如何处理海量数据,提供更好的解决方 ...
- canvas粒子系统的构建
前面的话 本文将从最基本的imageData对象的理论知识说开去,详细介绍canvas粒子系统的构建 效果演示 下面是实例效果演示,博文结尾有全部源码 imageData 关于图像数据imageDat ...
- poj 3013 Big Christmas Tree
Big Christmas Tree Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 20974 Accepted: 4 ...
- python常用标准库
-------------------系统内建函数------------------- 1.字符串 str='这是一个字符串数据测试数据'对应 str[0]:获取str字符串中下标为 ...
- java Properties类得到当前的系统属性
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt218 package com.shi.simpleUtil; import ...
- Spring MVC入门讲解
一.Springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, 将web层进行职责解耦,基 ...
- 201521123091 《Java程序设计》第13周学习总结
Java 第十三周总结 第十三周的作业. 目录 1.本章学习总结 2.Java Q&A 3.码云上代码提交记录及PTA实验总结 4.课后阅读 1.本章学习总结 1.1 以你喜欢的方式(思维导图 ...
- Java-反射机制学习
反射机制是Java的一个重要性,它使得Java语言具有了动态特性.比如说,可以在代码中动态地获取某个类的信息,生成它的实例.获取其成员变量.调用它的方法.下面通过几个示例来演示反射机制的作用与用法. ...
- Swing-布局管理器之GridLayout(网格布局)-入门
注:本文内容源自于三十一.Java图形化界面设计——布局管理器之GridLayout(网格布局),笔者在学习过程中根据自身理解修改了部分代码. 网格布局特点: l 使容器中的各组件呈M行×N列的网格 ...
- 201521123072《java程序设计》第四次总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.11.2 使用常规方法总结其他上课内容 一些小的方法归纳: 通过 instanceof 可以判断父类引用所引用的对象实例的实际类 ...