mysql连接方式

mysql连接方式,第1张

左连接:返回包括左表中的所有记录和右表中联结字段相等的记录

右连接:返回包括右表中的所有记录和左表中联结字段相等的记录

全连接:返回两个连接表的所有记录;mysql没有全连接

内连接:返回两个连接表连接字段相同的记录;

union:对两个结果集进行并集,并去重,当交换两个select语句顺序后,最终结果与不交换时无区别;

union all:对两个结果集进行并集,不去重,当交换两个select语句顺序后,最终结果与不交换时有区别;

举个例子 有一个学生表 班级 姓名 一个成绩表 姓名 成绩 我们需要返回X班的所有学生的成绩,但是班上有人缺考,也就是成绩表里没有姓名,我们先用on得到的就是有考试成绩的名字,通过外连接,我们就可以得到全班人的名字以及成绩。

来自MySQL的学习笔记,写的不对的地方大家多多指教哦

什么是外键?

假设有 2 个表,分别是表 A 和表 B,它们通过一个公共字段“id”发生关联关系,我们把这个关联关系叫做 R。如果“id”在表 A 中是主键,那么,表 A 就是这个关系 R 中的主表。相应的,表 B 就是这个关系中的从表,表 B 中的“id”,就是表 B 用来引用表 A 中数据的,叫外键。所以,外键就是从表中用来引用主表中数据的那个公共字段。

语法结构:

在创建表时添加外键约束:

在修改表时定义外键约束:

例子1:创建表时添加外键约束

首先创建主表:importhead

创建从表:test_mysql.importdetails

查询外键约束的相关信息:

查询结果为:

例子2:修改表时定义外键约束

修改表时定义从表test_mysql.importdetails的外键约束

删除外键约束使用DROP,语法结构为:

例子:删除从表test_mysql.importdetails的外键约束

在 MySQL 中,有 2 种类型的连接,分别是内连接(INNER JOIN)和外连接(OUTER JOIN)。

在 MySQL 里面,关键字 JOIN、INNER JOIN、CROSS JOIN 的含义是一样的,都表示内连接。我们可以通过 JOIN 把两个表关联起来,来查询两个表中的数据。

例子:有一张销售表,如下图:

有一张会员信息表,如下图:

通过内连接,查询会员的销售记录:

运行语句,结果如下:

根据上面的结果,其实可以得知:内连接查询到结果集为两个表的交集部分。

跟内连接只返回符合连接条件的记录不同的是,外连接还可以返回表中的所有记录,它包括两类,分别是左连接和右连接。

例子1:左外连接

如果需要查询所有销售记录,则可以使用左外连接

运行语句,结果为:

从上面的结果可以得知,LEFT JOIN左边的表会返回全部记录,而右边的表只返回符合连接条件的记录

例子2:右外连接:

运行语句,结果为:

从上面的结果可以得知,RIGHT JOIN右边的表会返回全部记录,而左边的表只返回符合连接条件的记录

SQL中的 join 可以根据相应条件把指定的表给结合起来并将数据返回。

内连接是基于连接谓词将俩张表(如A和B)的列组合到一起产生新的结果表,在表中存在至少一个匹配时,INNER JOIN 关键字返回行

左外连接Left join关键字会从左表那里返回所有的行,即使是在右表中没有匹配到的行 

右外连接关键字Right join会从右表那里返回所有的行,即使是在左表中没有匹配到的行 

全连接的关键字Full join,只要其中某个表中存在匹配,Full join 就会返回行

交叉连接一般使用的比较少,交叉连接又称笛卡尔连接或者叉乘连接,如果,A和B是俩个集合,他们的交叉连接就是A*B 


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5908464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存