MySQL【知识改变命运】11

embedded/2024/10/23 8:40:21/

联合查询

  • 6. ⼦查询
    • 6.1 语法
    • 6.2 单⾏⼦查询
    • 6.3 多⾏⼦查询
    • 6.4 多列⼦查询
    • 6.5 在from⼦句中使⽤⼦查询
  • 7. 合并查询
    • 7.1 创建新表并初始化数据
    • 7.2 Union
    • 7.3 Union all
  • 8. 插⼊查询结果
    • 8.1 语法
    • 8.2 ⽰例

6. ⼦查询

⼦查询是把⼀个SELECT语句的结果当做别⼀个SELECT语句的条件,也叫嵌套查询

6.1 语法

select * from table1 where col_name1 {= | IN} (select col_name1 from table2 where col_name2 {= | IN} [(select ...)] ...
)

6.2 单⾏⼦查询

嵌套的查询中只返回⼀⾏数据
• ⽰例:查询与"不想毕业"同学的同班同学

mysql> select * from student where class_id = (select class_id from student 
where name = '不想毕业');
  1. 确定参与查询表:学生表

  2. 先查出不想毕业这位同学的班级编号
    在这里插入图片描述

  3. 在学生表中查出与不想毕业的同班同学,过滤条件是class_id=2在这里插入图片描述

  4. 组合成子查询的方式
    在这里插入图片描述

  5. 过滤掉不想毕业这位同学的记录

在这里插入图片描述

在这里插入图片描述

6.3 多⾏⼦查询

嵌套的查询中返回多⾏数据,使⽤[NOT] IN关键字
• ⽰例:查询"MySQL"或"Java"课程的成绩信息

select * from score where score.course_id in (select course.id from course where course.`name`='MySQL' or name='java' );
  1. 确定参与查询的表:
    课程表,成绩表。
  2. 先查询课程表中的课程信息

在这里插入图片描述

  1. 通过课程编号在分数表里中查询对应的分数

在这里插入图片描述

  1. 合并成子查询的方式

在这里插入图片描述
再查询不包括mysql和java的成绩
在这里插入图片描述

6.4 多列⼦查询

单⾏⼦查询和多⾏⼦查询都只返回⼀列数据,多列⼦查询中可以返回多个列的数据,外层查询与嵌套
的内层查询的列要匹配
• ⽰例:查询重复录⼊的分数
1.对重复的列进行分组并计算这组重复的个数
在这里插入图片描述

  1. 进行对重复数据的筛选

在这里插入图片描述

  1. 确定内层条件并加入到外层查询当中

在这里插入图片描述

6.5 在from⼦句中使⽤⼦查询

当⼀个查询产⽣结果时,MySQL⾃动创建⼀个临时表,然后把结果集放在这个临时表中,最终返回
给⽤⼾,在from⼦句中也可以使⽤临时表进⾏⼦查询或表连接操作
• ⽰例:查询所有⽐"Java001班"平均分⾼的成绩信息
在这里插入图片描述
在这里插入图片描述
三表关联

  1. 再用成绩表中的真实成绩与平均分做比较

在这里插入图片描述
在这里插入图片描述

  • 这里小总结一下:用子查询返回的值,用于where 子句里面,用子查询生成的临时表 用于from 子句中。

7. 合并查询

  • 在实际应⽤中,为了合并多个select操作返回的结果,可以使⽤集合操作符 union,union all

7.1 创建新表并初始化数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2 Union

  • 该操作符⽤于取得两个结果集的并集。当使⽤该操作符时,会⾃动去掉结果集中的重复⾏。

  • ⽰例:查询student表中 id < 3 的同学和student1表中的所有同学

在这里插入图片描述

  • 还可以单表操作
    在这里插入图片描述

7.3 Union all

该操作符⽤于取得两个结果集的并集。当使⽤该操作符时,不会去掉结果集中的重复⾏
在这里插入图片描述
如果查询结果来自多个表,那么推荐使用合并查询

8. 插⼊查询结果

8.1 语法

INSERT INTO table_name [(column [, column ...])] SELECT ...

8.2 ⽰例

• 将student表中C++001班的学⽣复制到student1表中
student1插入前的原表。
在这里插入图片描述
student表中C++001班的数据
在这里插入图片描述
语句插入
在这里插入图片描述
插入成功:
在这里插入图片描述


http://www.ppmy.cn/embedded/129773.html

相关文章

AI驱动地球链在能源等行业发展,目的是训练AI发展EACO在能源(光伏储能)行业中的应用的探讨。

一、AI 驱动地球链eaco在能源行业发展概述 &#xff08;一&#xff09;AI 与地球链 地球链&#xff08;$eaco$eEarth - chain&#xff09;是一种将各种与地球相关的数据、资源通过区块链技术进行整合和管理的概念。AI 驱动地球链&#xff0c;意味着利用人工智能的强大数据分析、…

复写零--双指针

一&#xff1a;题目描述 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二&#xff1a;算法原理分析 三&#xff1a;代码编写 void duplicateZeros3(vector<int>& arr) {int dest -1, cur 0, n arr.size();//1.找到要复写的最后一个数字while …

每天坚持学英语,多久能说流利呢?

说一口流利的英语并没有一个固定的“时间表”&#xff0c;因为这受到多种因素的影响&#xff0c;包括个人的基础水平、学习效率、投入的时间、学习方法、语言天赋、实践机会等。 基础水平&#xff1a;如果你有一定的英语基础&#xff08;例如高中或大学英语水平&#xff09;&am…

C# 串口通信教程

串口通信&#xff08;Serial Communication&#xff09;是一种用于设备之间数据传输的常见方法&#xff0c;通常用于与外部硬件设备&#xff08;如传感器、机器人、微控制器&#xff09;进行通信。在 C# 中&#xff0c;System.IO.Ports 命名空间提供了与串口设备交互的功能&…

Go 设置并发控制数量 【go并发模型】

背景&#xff1a;go的并发控制也是老生常谈&#xff0c;在公司业务中也是经常出现 谈谈我们这次并发模型的适用场景&#xff1a;要处理的任务很多比如有10000个&#xff0c;没开并发的时候我们要一个一个进行执行这个时候其实无论是cpu压力还是数据库和redis压力都比较小也就是…

如何看待AI技术的应用前景?

人工智能&#xff1a;引领未来的变革力量 在当今快速变化的科技时代&#xff0c;人工智能&#xff08;AI&#xff09;作为一项前沿技术&#xff0c;已然成为推动全球各行各业变革的核心驱动力。随着人工智能技术的不断发展&#xff0c;其广泛的应用前景和深远的影响力&#xf…

兰迪·舍克曼担任生命银行链(LBC)顾问,赋能基因数据区块链技术发展

兰迪舍克曼&#xff08;Randy Schekman&#xff09;作为生命银行链&#xff08;Life Bank Chain, LBC&#xff09;的顾问参与其中&#xff0c;这无疑是个令人兴奋的消息&#xff01;他在生理医学和基因研究方面拥有深厚的专业知识&#xff0c;必将对LBC的使命&#xff0c;即安全…

【Unity】Unity Shader学习笔记(八)基础纹理2:高度纹理、法线纹理、模型空间下的法线纹理、切线空间下的法线纹理光照计算

文章目录 凹凸映射法线纹理设置高度纹理&#xff08;Height Map&#xff09;法线纹理&#xff08;Normal Map&#xff09;模型空间的法线纹理切线空间的法线纹理优劣对比 切线空间下的法线纹理光照计算最终效果完整代码TANGENT语义内置宏 TANGENT_SPACE_ROTATIONObjSpaceLightD…