【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='英文';

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

相关推荐
IvorySQL7 小时前
PostgreSQL 日报 | JOIN 与外键优化(8 月 9 日)
数据库·postgresql
ltl7 小时前
自治数据库十年回顾:Peloton、NoisePage、OtterTune 到云原生 auto-tuning
数据库
一笑的小酒馆9 小时前
Android中WebRTC通信
android
灯澜忆梦9 小时前
【MySQL10】进阶篇 | 索引_#2性能优化
数据库·sql·mysql·性能优化
C++ 老炮儿的技术栈11 小时前
从 Qt Designer 属性编辑器的层级可以看到继承链
c语言·数据库·c++·qt·sqlite·visual studio
MC皮蛋侠客11 小时前
Redis 系列(一):全景与最小闭环——从 `SET` 命令到内存数据结构
数据结构·数据库·redis
KevinWang_11 小时前
Android Hilt 依赖注入
android
古法安卓12 小时前
Android-深入理解 Android 回调(Callback)机制
android·性能优化·android studio
古法安卓12 小时前
Android-车机 GNSS 定位数据接收问题排查
android·java·android studio
zt1985q12 小时前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·网络协议·开源