mysql数据库 连接区别吗_MySQL之左右连接的区别_数据库

花式了解---MySQL多表查询_数据库

一、使用SELECT子句进行多表查询

SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件

d496427e690fdfc9449baeed4e727d1c.png

MYSQL中可以通过内外键链接,将有关系的表中数据合并到一起进行条件筛选:

首先创建两个新表,数据如下:

student 表数据:

913c3bbb22bc17a5350846d6f8dbb367.png

score 表数据:

99a16b9c241245d7770eb81f398802b5.png

92fd503ff4eec08b75c3720cc2b02dd1.png

可以看到students表中stu_id为16048008的记录对应score表没有数据;

1.当进行内连接时,系统会自动忽略两个表中对应不起来的数据:

-- 显示内连接所有数据:SELECT * FROM students st INNER JOIN score sc ON st.sid=sc.stu_id;

数据太多,只截图最末尾的:

5aa74385afa2343ffffa92f932f9899a.png

可以看到,数据只显示到16048007,16048008的并没有显示,所以内连接只显示所有有关联的数据.

2.左链接,显示关键词left左边表中的所有数据,右边表数据数据少了补NULL值,数据多了不显示;SQL数据库增删改查语法_数据库

SQL数据库增删改查语法:1、【SELECT * FROM table_name】;2、【INSERT INTO table_name

VALUES (value1,value2,value3,...)】。

-- 左外链接 leftSELECT * FROM students st LEFT JOIN score sc ON st.sid=sc.stu_id;

c23093858100b50e08a1265c2f0b2bab.png

可以看到,16048008在右边score表中没有数据,系统用NUll补齐,

SELECT * FROM score sc LEFT JOIN students st ON st.sid=sc.stu_id;

上图是我们将students表和score表换了一下位置的运行结果,可以看出,本来右边表16048008记录,因为在左边表钟没有数据对应,所以被删除了,可以看出,左链接是以左边表中数据为参照,显示左边表中所有数据,右边表,只显示与左边表对应的数据,少了补NULl,多了删除;

同理,右链接是以右边为参照,左边少了补NULL,多了删除,这里就不多说了;

以上可以得出:

1.内连接,显示两个表中有联系的所有数据;

2.左链接,以左表为参照,显示所有数据;

3.右链接,以右表为参照显示数据;

简简单单,不急不躁,每天充实而稳定的前行!

推荐学习:mysql教程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值