Mysql入门(七)之子查询
来源:互联网 发布:媒体播放器软件下载 编辑:程序博客网 时间:2024/05/12 10:46
子查询
子查询:sub query,查询是在某个查询结果之上进行的(一条select语句内部包含了另一条select语句)
子查询分类
子查询有两种分类方式:按位置分类;按结果分类
按位置分类:子查询(select语句)在外部查询(select语句)中出现的位置
From子查询:子查询跟在from之后
Where子查询:子查询跟在where条件中
Exists子查询:子查询跟在exists里面
按结果分类:根据子查询得到的数据结果进行分类(理论上讲任何一个查询得到的结果都可以理解为二维表)
标量子查询:子查询得到的结果是一行一列
列子查询:子查询得到的结果是多行一列
行子查询:子查询得到的结果是一行多列(多行多列)
上面几个出现的位置都是在where之后
表子查询:子查询得到的结果是多行多列(出现的位置是在from之后)
标量子查询
需求:知道班级名字为php0710,想获取该班的所有学生
1. 确定数据源:获取所有的学生
Select*from my_student where c_id=?;
2. 获取班级id:可以通过班级名字确定
Select id from my_class where c_name='PHP0710';------id一定只有一个值(一行一列)
列子查询
需求:查询所有在读班级的学生(班级表中存在的班级)
1. 确定数据源:学生
Select*from my_student where c_id in(?);
2. 确定有效班级的id:所有班级id
Select id from my_class;
列子查询
列子查询返回的结果会比较:一列多行,需要使用in作为匹配条件匹配;其中mysql还有几个类似的条件:all,some,any
肯定结果
否定结果
行子查询
行子查询:返回的结果可以是多行多列(一行多列)
需求:要求查询整个学生中,年龄最大且身高是最高的学生。
1. 确定数据源
Select*from my_student where age=?and height=?;
2.确定最大年龄和最高的身高;
Select max(age),max(height)from my_student;
行子查询:需要构造行元素:行元素由多个字段构成
表子查询
表子查询:子查询返回的结果是多行多列的二维表;子查询返回的结果是当做二维表来使用
需求:找出每一个班最高的一个学生
1. 确定数据源:先将学生按照身高进行降序排序
Select*from my_student order by height dec;
2. 从每个班选出第一个学生
Select*from my_student group by c_id;---每个班选出第一个学生
表子查询:from子查询:得到的结果作为from的数据源
Exists子查询
exists:是否存在的意思,exists子查询就是用来判断某些条件是否满足(跨表),exists是接在where之后:exists返回的结果只有0和1
需求:查询所有的学生:前提条件是班级存在
1. 确定数据源
Select*from my_student where ?;
2. 确定条件是否满足
Exists(Select*from my_class);----是否成立
雪
0 0
- Mysql入门(七)之子查询
- MYSQL学习笔记(七)之子查询(续)
- MYSQL学习笔记(六)之子查询
- Mysql之子查询
- MYSQL之子查询
- MySQL之子查询
- MySql之子查询
- 10-Oracle入门之子查询
- MySQL(基础篇)之子查询
- MySQL优化二之子查询
- mysql之子查询与连接
- Mysql之子查询和连接
- Mysql基本命令之子查询
- Mysql之子查询实例(#代表是注释内容)
- MySQL基础五之子查询和连接
- MySQL学习之子查询、合并查询结果、别名
- Mysql的数据查询语言DQL之子查询
- MYSQL学习笔记(八)之子查询的优化-使用连接
- Android APK反编译就这么简单 详解(附图)
- Google Android API guide learning(a)
- 常用控件知识
- iOS 跳转到系统的设置界面
- 【译文】Mastering CMake(一)之为什么选择CMake
- Mysql入门(七)之子查询
- 浅谈云计算和大数据技术
- POJ 1236 Network of Schools
- Ext 图片上传
- QT信号和槽机制的注意事项
- 设计师胡晓丹的创作历程
- 为自己收录的web公式编辑方式-MarkDown
- JAVA日志记录方法
- Visual Studio解决方案vs2005/vs2008/vs2010/vs2012/vs2013/vs2015版本互相转换工具