【SQL】SQL中笛卡尔积、内连接、外连接的数据演示
2022/1/23 19:04:52
本文主要是介绍【SQL】SQL中笛卡尔积、内连接、外连接的数据演示,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
【SQL】SQL中笛卡尔积、内连接、外连接的数据演示
SQL的查询语句中,常使用到内连接、外连接,以及连接的基础--笛卡尔积运算。
在简单的SQL中,也许我们还分辨清楚数据如何连接,一旦查询复杂了,脑子也犯浆糊了,迷迷糊糊的。
本文,简单以数据形式记录连接的数据结果,在迷糊时可翻阅。
以MySQL运行。
> 原始的表
select * from t_user u;
select * from t_address a;
select * from t_phone p;
> 笛卡尔积
select * from t_user, t_address; 或 select * from t_user inner join t_address;
> 内连接
-- 例3.1 select * from t_user u, t_address a where u.id = a.user_id; -- 例3.2 select * from t_user u inner join t_address a where u.id = a.user_id; -- 例3.3 select * from t_user u inner join t_address a on u.id = a.user_id;
-- 例3.4 select * from t_user u inner join t_address a where u.id = a.user_id and a.address like '%罗湖%'; -- 例3.5 select * from t_user u inner join t_address a on u.id = a.user_id and a.address like '%罗湖%';
例3.4、例3.5虽结果集相同,按照其SQL语义看,执行过程应该有所不同。(我对其中原理也不了解,此处暂不作深究)
> 左外连接
select * from t_user u left outer join t_address a on u.id = a.user_id;
多层外连接
select * from t_user u left outer join t_address a on u.id = a.user_id left outer join t_phone p on u.id = p.user_id;
select * from t_user u left outer join t_address a on u.id = a.user_id left outer join t_phone p on u.id = p.user_id left outer join t_phone p2 on u.id = p2.user_id;
> 右外连接
select * from t_user u right outer join t_address a on u.id = a.user_id;
获取这样查询,效果更好看、明显
select * from t_address a right outer join t_user u on u.id = a.user_id;
这篇关于【SQL】SQL中笛卡尔积、内连接、外连接的数据演示的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)