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

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

相关推荐
tatasix25 分钟前
MySQL UPDATE语句执行链路解析
数据库·mysql
南城花随雪。38 分钟前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了39 分钟前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度40 分钟前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮43 分钟前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
gma9992 小时前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️2 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98762 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康2 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
黑色叉腰丶大魔王2 小时前
《MySQL 数据库备份与恢复》
mysql