mysql内连接和外连接有哪些区别
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"mysql内连接和外连接有哪些区别",在日常操作中,相信很多人在mysql内连接和外连接有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"mys
千家信息网最后更新 2025年01月19日mysql内连接和外连接有哪些区别
这篇文章主要介绍"mysql内连接和外连接有哪些区别",在日常操作中,相信很多人在mysql内连接和外连接有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"mysql内连接和外连接有哪些区别"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
mysql内连接和外连接的区别:内连接会取出连接表中匹配到的数据,匹配不到的不保留;而外连接会取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL。
本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
区别
内连接(inner join):取出连接表中匹配到的数据,匹配不到的不保留
外连接(outer join):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL
示例表
users表
mysql> select * from users;+----+-------+| id | name |+----+-------+| 1 | john || 2 | May || 3 | Lucy || 4 | Jack || 5 | James |+----+-------+5 rows in set (0.00 sec)
topics表
mysql> select * from topics;+----+---------------------------------------+---------+| id | title | user_id |+----+---------------------------------------+---------+| 1 | Hello world | 1 || 2 | PHP is the best language in the world | 2 || 3 | Laravel artist | 6 |+----+---------------------------------------+---------+3 rows in set (0.00 sec)
内连接(inner join)
示例
mysql> select * from users as u inner join topics as t on u.id=t.user_id;+----+------+----+---------------------------------------+---------+| id | name | id | title | user_id |+----+------+----+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 |+----+------+----+---------------------------------------+---------+2 rows in set (0.00 sec)
inner可以省略,as是给表起别名,也可以省略
mysql> select * from users u join topics t on u.id=t.user_id;+----+------+----+---------------------------------------+---------+| id | name | id | title | user_id |+----+------+----+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 |+----+------+----+---------------------------------------+---------+2 rows in set (0.00 sec)
以上两句等价于
mysql> select * from users,topics where users.id=topics.user_id;+----+------+----+---------------------------------------+---------+| id | name | id | title | user_id |+----+------+----+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 |+----+------+----+---------------------------------------+---------+2 rows in set (0.00 sec)
外连接(outer join)
左外连接(left outer join):以左边的表为主表
右外连接(right outer join):以右边的表为主表
以某一个表为主表,进行关联查询,不管能不能关联的上,主表的数据都会保留,关联不上的以NULL显示
通俗解释就是:先拿出主表的所有数据,然后到关联的那张表去找有没有符合关联条件的数据,如果有,正常显示,如果没有,显示为NULL
示例
mysql> select * from users as u left join topics as t on u.id=t.user_id;+----+-------+------+---------------------------------------+---------+| id | name | id | title | user_id |+----+-------+------+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 || 3 | Lucy | NULL | NULL | NULL || 4 | Jack | NULL | NULL | NULL || 5 | James | NULL | NULL | NULL |+----+-------+------+---------------------------------------+---------+5 rows in set (0.00 sec)
等价于以下,只是字段的位置不一样
mysql> select * from topics as t right join users as u on u.id=t.user_id;+------+---------------------------------------+---------+----+-------+| id | title | user_id | id | name |+------+---------------------------------------+---------+----+-------+| 1 | Hello world | 1 | 1 | john || 2 | PHP is the best language in the world | 2 | 2 | May || NULL | NULL | NULL | 3 | Lucy || NULL | NULL | NULL | 4 | Jack || NULL | NULL | NULL | 5 | James |+------+---------------------------------------+---------+----+-------+5 rows in set (0.00 sec)
左外连接和右外连接是相对的,主要就是以哪个表为主表去进行关联
到此,关于"mysql内连接和外连接有哪些区别"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
关联
学习
示例
更多
等价
帮助
实用
通俗
接下来
位置
别名
只是
右边
字段
就是
教程
文章
方法
条件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
asp数据库分析
数据库mq堆积什么意思
GISAlD数据库
千千静听歌词服务器2022
服务器设备管理器
顺义区高科技软件开发服务供应
八极拳视频软件开发
教室信息管理系统设计数据库
倩女幽魂服务器不存在了
软件开发外包数据
高并发导致数据库查询超时
明日服务器开启一般几点
网络安全教育耗材
网络技术大专好找工作吗
软件开发流程设计
上海软件开发项目主管
海淀区网络营销网络技术一体化
网络安全周宣传通知
邯郸盛邦软件开发有限公司
服务器安全员 总结
图书馆数据库概念结构设计
数据库引擎架构图
复古传奇怎么加入服务器
企业软件开发能力
青少年网络安全海报手绘图片
sql数据库项目部署文件
武汉联创网络技术有限公司
强化网络安全技术防范措施
关于网络安全的利和弊短篇
北京服务器搬运哪家强