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

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

相关推荐
爬山算法22 分钟前
Redis(50) Redis哨兵如何与客户端进行交互?
数据库·redis·交互
007php00725 分钟前
某大厂MySQL面试之SQL注入触点发现与SQLMap测试
数据库·python·sql·mysql·面试·职场和发展·golang
Craze_rd35 分钟前
腾讯云TDSQL-C 与传统MySQL对比
mysql·云计算·腾讯云
赛姐在努力.39 分钟前
Spring DI详解--依赖注入的三种方式及优缺点分析
java·mysql·spring
YS_Geo1 小时前
Redis 深度解析:数据结构、持久化与集群
数据结构·数据库·redis
IvanCodes1 小时前
六、Docker 核心技术:Dockerfile 指令详解
java·数据库·docker
寻星探路1 小时前
数据结构造神计划第三天---数据类型
数据库
Android出海2 小时前
Google Play账户与App突遭封禁?紧急应对与快速重构上架策略
android·网络·重构·新媒体运营·产品运营·内容运营
l5657582 小时前
第五十五天(SQL注入&增删改查&HTTP头&UA&XFF&Referer&Cookie&无回显报错&复盘)
数据库
恋猫de小郭2 小时前
Flutter 官方 LLM 动态 UI 库 flutter_genui 发布,让 App UI 自己生成 UI
android·前端·flutter