Mysql内连接外连接

一.基本介绍

1.内连接:只返回两个表中连接字段相等的行。inner join(等值连接) 只返回两个表中联结字段相等的数据
2.左外连接(也称左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。以左表为基表,在from子句中使用关键字left outer join”或关键字“left join”来连接两张表。
3.右外连接(也称右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。以右表为基表,在from子句中使用关键字“right outer join”或关键字“right join”来连接两张表。
4.全外连接:返回左右表中所有的记录左右表中连接字段相等的记录。在from子句中使用关键字“full outer join”或关键字“full join”来连接两张表。

5.交叉连接(笛卡尔积):返回被连接的两个表所有数据行的笛卡尔积。返回结果集合中的数据行数等于第一个表中复合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

二.语法和图解

1.内连接(inner join)

内连接也称为等值连接,只返回两个表中键值匹配的行,即只有在两个表中都有匹配的数据时才会返回。内连接的语法如下:

select column
from table1
inner join table2
on table1.column = table2.column

在这里插入图片描述

2.左外连接

左连接返回左表中所有记录和右表中匹配的记录,如果右表中没有匹配的记录,则返回 NULL 值。左连接的语法如下:

select column
from table1
left join table2
on table1.column = table2.column

在这里插入图片描述

3.右外连接

右连接返回右表中所有记录和左表中匹配的记录,如果左表中没有匹配的记录,则返回 NULL 值。右连接的语法如下:

select column
from table1
right join table2
on table1.column = table2.column

在这里插入图片描述

4.满外连接(mysql不支持)

返回左右表中所有的记录和左右表中连接字段相等的记录。全外连接的语法如下:

select column
from table1
full join table2
on table1.column = table2.column

在这里插入图片描述

5.交叉连接(笛卡尔乘积)

返回结果集合中的数据行数等于第一个表中复合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

select column
from table1 , table2

三.案例

假设有两张表A和B
表A:

idname
1Alice
2Bob
3Carol

表B:

idscore
190
280
3null

1.内连接

select A.id, A.name, B.score 
from A 
inner join B 
on A.id = B.id;

结果

idnamescore
1Alice90
2Bob80
3Carolnull

2.左外连接

select A.id, A.name, B.score 
from A 
left join B 
on A.id = B.id;

结果

idnamescore
1Alice90
2Bob80
3Carolnull

3.右外连接

select A.id, A.name, B.score 
from A 
right join B 
on A.id = B.id;

结果

idnamescore
1Alice90
2Bob80
3Carolnull

四.总结

  • 左外连接 = 内连接 + 左边表中失配的元组(其中,缺少的右边表中的属性值用NULL表示)
  • 右外连接 = 内连接 + 右边表中失配的元组(其中,缺少的左边表中的属性值用NULL表示)
  • 满外连接 =内连接 + 左边表中失配的元组 + 右边表中失配的元组。

参考:https://blog.csdn.net/qq_62687015/article/details/128104836
https://www.jb51.net/article/283404.htm

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
dbeaver连接MySQL连接失败可能有多种原因。首先,确保你已经正确安装了MySQL服务器和dbeaver客户端,并且它们都在同一台机器上运行。然后,检查以下几个可能的问题: 1. 检查MySQL服务器是否已经启动。你可以通过在命令行中运行`mysql -u root -p`命令来检查服务器是否可以正常连接。 2. 确保你在dbeaver中正确设置了MySQL连接参数。打开dbeaver,点击“新建连接”,填写正确的主机名、端口号、用户名和密码。确保这些参数与你的MySQL服务器设置相匹配。 3. 检查防火墙设置。防火墙可能会阻止dbeaver与MySQL服务器建立连接。确保你的防火墙允许dbeaver和MySQL之间的通信。 4. 检查MySQL服务器的访问权限。确保你的MySQL服务器允许来自dbeaver的连接。你可以通过在MySQL服务器上运行以下命令来授予远程访问权限: ``` GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 注意替换`username`和`password`为你自己的用户名和密码。 5. 检查网络连接。确保你的机器可以正常连接到MySQL服务器所在的网络。你可以尝试使用ping命令或telnet命令来测试网络连接。 如果你仍然无法连接到MySQL服务器,请检查上述步骤并确保没有遗漏任何设置。如果问题仍然存在,可能是由于其他原因引起的,你可能需要进一步调查或寻求专业的技术支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值