【MySQL基础】MySQL基础操作三

文章目录

🍉1.联合查询

🥝笛卡尔积

实际开发中往往数据来自不同的表,所以需要多表联合查询。多表查询是对多张表的数据取笛卡尔积:

笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员 1

🍉2.内连接

select 字段 from 表1 别名1 inner join 表2 别名2 on 连接条件 and 其他条件;

select 字段 from 表1 别名1,表2 别名2 where 连接条件 and 其他条件;

现有如下一个student表和classes表以及score表

🥝查询单个数据

我们要在这个表中查询菩提老祖的成绩,该如何做呢?

select sco.score from student stu inner join score sco on stu.id=sco.student_id and stu.name='菩提老祖';

或者

select sco.score from student stu, score sco where stu.id=sco.student_id and stu.name='菩提老祖';

🥝查询多个数据

查询所有同学的总成绩,及同学的个人信息:

select stu.sn, stu.name, stu.qq_name, sum( sco.score ) from student stu join score sco on stu.id = sco.student_id froup by sco.student_id;

🍉3.外连接

外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完全显示我们就说是右外连接。

-- 左外连接,表1完全显示

select 字段名 from 表名1 left join 表名2 on 连接条件;

-- 右外连接,表2完全显示

select 字段 from 表名1 right join 表名2 on 连接条件;

查询所有同学的成绩,及同学的个人信息,如果该同学没有成绩,也需要显示

其中'老外学中文'没有考试成绩,但也显示了出来。

🍉4.自连接

自连接是指在同一张表连接自身进行查询。

显示所有"计算机原理"成绩比"Java"成绩高的成绩信息

SELECT

s1.*

FROM

score s1

JOIN score s2 ON s1.student_id = s2.student_id

AND s1.score < s2.score

AND s1.course_id = 1

AND s2.course_id = 3;

🍉5.合并查询

在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。使用UNION

和UNION ALL时,前后查询的结果集中,字段需要一致。

  • union

该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。

查询id小于3,或者名字为"英文"的课程:

select * from course where id<3

union

select * from course where name='英文';

  • union all
    该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。

select * from course where id<3

union all

select * from course where name='英文';

以上就是本文所有内容,如果对你有帮助的话,点赞收藏支持一下吧!

相关推荐
90后的晨仔2 分钟前
解决 Android 构建报错:Unable to delete file .../file-map.txt
android·前端
进击的荆棘5 分钟前
MySQL——数据库基础
数据库·mysql
Decay__5 分钟前
22_MySQL 运维自动化平台 —— 部署编排 + 监控 + 巡检 + 告警 + 工单闭环一体化
运维·数据库·sql·mysql·架构
mg66843 分钟前
安卓玩机工具----安卓手机变成桌面电脑!多窗口镜像+音频投射+游戏操控,无需 Root
android·智能手机·电脑
FungLeo1 小时前
成为全栈·基础补充·数据库索引:为什么加了索引还是慢
mysql·postgresql·sqlite·sql优化·数据库索引·成为全栈
codeejun1 小时前
每日一Go·MySQL-11、覆盖索引 & 回表原理
javascript·数据库·mysql
CoderYanger1 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)
java·数据库·spring·面试·职场和发展·java-ee·mybatis
peakmain91 小时前
异常处理 - Native 层的崩溃捕获机制及实现 (一)
android·性能优化
XLYcmy2 小时前
信息检索报告数字经济赋能城市低碳治理的路径研究——基于“传统数据库 + 生成式人工智能”双轮驱动的检索实践 检索实施与结果分析 Web of Science
数据库·ai·llm·prompt·ssci·deepseek·wos
Decay__2 小时前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比
运维·数据库·sql·mysql·架构