Mysql基础入门(五)子查询
文章目录
- 什么是子查询
- where 嵌套子查询
- 简单版
- in嵌套查询
- some嵌套查询
- all嵌套查询
- exists嵌套查询
什么是子查询
有如下表,现要求编写sql语句,查看年龄比“李斯文”小的学生,要求显示这些学生的信息 ,红框中的学生是比李斯文年龄小的学生。
- 普通方法:
第一步:查询得到“李斯文”的出生日期
SELECT bornDate from student
where studentName="李斯文"
; ->1993-07-03
第二步:利用WHERE语句,筛选出生日期比“李斯文”大的学生
SELECT * from student
where bornDate >'1993-07-03'
;
- 子查询方法
将第二步需要的1993-07-03,用第一步中查询的语句代替,代码如下:
SELECT * from student
where bornDate >(SELECT bornDate from student
where studentName="李斯文")
;
where 嵌套子查询
简单版
- 找出比“孙权”大的人
select name,age from person
where age > (select age from person where name = '孙权')
输出结果为
in嵌套查询
- 找出魏国的人
select name from person
where countryid in
(
select countryid from country
where countryname = '魏国'
)
输出结果为
some嵌套查询
- 语法
<表达式>{ =|<>|!=|>|>=|!>|<|<=|!<}some(子查询)
some在sql中的逻辑运算符号,如果在一系列比较中,有些值为True,那么结果就为True。
- 找出魏国的人
select name from person
where countryid = some --用等号和以下查询到的值比较,如果与其中一个相等,就返回
(
select countryid from country
where countryname = '魏国'
)
- 结果如下
all嵌套查询
- 语法
<表达式>{ =|<>|!=|>|>=|!>|<|<=|!<}all(子查询)
all是sql中的逻辑运算符好,如果一系列的比较都为true,那么结果才能为true。
- 返回大于“魏国”的id的人
select name from person
where countryid > all --当countryid大于以下返回的所有id,此结果才为True,此结果才返回
(
select countryid from country
where countryname = '魏国'
)
结果
exists嵌套查询
语法
exists 子查询
exists是sql中的逻辑运算符号。如果子查询有结果集返回,那么就为True。exists代表“存在”的意义,它只查找满足条件的那些记录。一旦找到第一个匹配的记录后,就马上停止查找。
但是如果子查询中因为加了条件而没有结果集返回,则主语句就不执行了:
SELECT * FROM Person
WHERE exists
(
SELECT * FROM Person
WHERE Person_Id = 100 --如果不存在Person_Id的记录,则子查询没有结果集返回,主语句不执行
)
参考:https://www.cnblogs.com/glassysky/p/11559082.html
Mysql基础入门(五)子查询相关推荐
- MySQL基础篇:子查询
文章目录 概述 where型子查询 from型子查询 EXISTS型子查询 复制表子查询 概述 在某些情况下,当进行一个查询时,需要的条件或数据要用另一个select语句的结果,这个时候,就要用到** ...
- 【MySQL】实验五 子查询
文章目录 1. 查询商品类别名称为"一体机"."台式机"两类商品的信息 2. 查询商品类别名称为"一体机"."台式机"两 ...
- MySQL入门 (九) : 子查询 Subquery
1 一个叙述中的查询叙述 子查询(subquery)是一种很常见的应用,不论是查询.新增.修改或删除都有可能出现. 子查询是一个放在左右刮号中的「SELECT」叙述,而这个查询叙述会放在另一个SQL叙 ...
- MySQL基础入门【3】
文章目录 13 补充知识,查询结果的去重 14 连接查询 14.1 什么是连接查询? 14.2 连接查询的分类? 14.3 基础知识 补充,表的别名 14.4 内连接 等值连接 非等值连接 自连接 1 ...
- 自己总结的MySQL基础入门知识,附思维导图
第一次写博文,问题点可能比较多,辛苦大家帮忙指正,感谢大家. MySQL基础入门知识 前言 一.数据库基础知识 1.什么是数据库 2.数据库的分类 3.数据库的常用语言 4.数据库的常用操作方式 5. ...
- Mysql 知行必会 “子查询”
Mysql 知行必会 "子查询" 每博一文案 后半生看透了人心,也看透了这世间所有的得失,不值得的人,不再 托付真心,不值得的感情,不会苦苦挽留,这世上有太多的人, 人前口服蜜饯, ...
- MySQL 基础 (一)- 查询语句
MySQL 基础入门 Day2 MySQL 基础 (一)- 查询语句 一.学习内容 1. 导入示例数据库 1.1 MySQL示例数据库结构 2. SQL是什么?MySQL是什么? 2.1 SQL 2. ...
- 罗马音平假名中文可复制_日语零基础入门五十音,日语零基础五十音图表
日语零基础入门五十音,日语入门的最基本要求就是记住五十音图,但是这个记住不仅是你能背下来或是默写下来.而是你需对号入座! 下面是一张五十音图表. 即每个假名单独拿出来你要立马反应出来怎么读.其重要性甚 ...
- left join on多表关联_资深DBA整理MySQL基础知识三:迅速理解MySQL的关联和子查询...
接上篇: 上篇主要介绍select的基本的构成,和一些简单常用条件语句.这篇着重说几种常用的多表关联关系. 前面入门只说了一种表的简单查询.但在实际工作几乎不会出现单表操作的情况,大多数还是多表的连接 ...
最新文章
- 机会的度量:概率和分布
- python数据分析的主要流程-用Python语言做数据分析基本思路和流程
- Kosaraju 算法查找强连通分支
- Java参数详解(转载)
- CAN 总线 之七 BOSCH CAN 位时序 和 同步
- .NET Core中的一个接口多种实现的依赖注入与动态选择
- matlab resample,resample matlab实现
- codeforces MUH and Important Things
- 《大数据》2015年第2期“前沿”——大数据技术发展的十个前沿方向(上)
- 服务器如何启动运行,如何在服务器系统启动或重新启动时执行命令或脚本
- oppo 手机侧滑快捷菜单_OPPO十年进化论,从A·V厂到国内第二
- Java 8中用java.time.LocalDate全面代替老旧的Date,Calendar类
- python脚本(比较两个Excel表格的不同并标记)
- 抢红包算法 c++_【优化求解】基于粒子群算法的光伏电池MPPT控制策略
- android电视盒子蓝牙遥控器app,Android TV 智能电视/盒子 APP 开发焦点控制 两种方法实例...
- [渝粤教育] 中央财经大学 宏观经济学 参考 资料
- C语言中do while用法
- 无敌python爬虫教程学习笔记(一)
- 用selenium模拟登录豆瓣
- 利用Glide 对设备上的图片进行压缩并保存
热门文章
- 干货分享 | Swift在淘系技术的演进历程
- 转载: 中国大部分程序员的通病
- 上班第一天总结(以装环境为主)
- “好像”还是“好象”
- 【Java基础】· 集合习题详解
- zjs-my-diary-20191227
- java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
- 步进电机基础(2.2)- 转子的分类与结构(VR型步进电机和HB型步进电机)
- R语言升级版本和迁移老版本中的包到新版本上的一些问题
- a java runtime enviroment jre or java de,手把手教你启动报错:A java Runtime Environment(JRE)…...