关于数据库表逻辑关联和物理关联的讨论

大家好, 我是上白书妖!

知识源于积累,登峰造极源于自律

今天我根据以前所以学的一些文献,笔记等资料整理出一些小知识点,有不当之处,欢迎各位斧正

朋友总结的:
在这里插入图片描述
关于图片上的网页链接:
关于数据库 级联,约束,外键 的学习,走过路过,不要错过喽!

七张Join关联图表:
上白书妖
七张Join图的代码

 
1 A、B两表共有
 select * from tbl_emp a inner join tbl_dept b on a.deptId = b.id;
 
2 A、B两表共有+A的独有
 select * from tbl_emp a left join tbl_dept b on a.deptId = b.id;
 
3 A、B两表共有+B的独有
 select * from tbl_emp a right join tbl_dept b on a.deptId = b.id;
 
4 A的独有 
select * from tbl_emp a left join tbl_dept b on a.deptId = b.id where b.id is null; 
 
5 B的独有
 select * from tbl_emp a right join tbl_dept b on a.deptId = b.id where a.deptId is null; #B的独有
 
6 AB全有
#MySQL Full Join的实现 因为MySQL不支持FULL JOIN,下面是替代方法
 #left join + union(可去除重复数据)+ right join
SELECT * FROM tbl_emp A LEFT JOIN tbl_dept B ON A.deptId = B.id
UNION
SELECT * FROM tbl_emp A RIGHT JOIN tbl_dept B ON A.deptId = B.id
 
7 A的独有+B的独有
SELECT * FROM tbl_emp A LEFT JOIN tbl_dept B ON A.deptId = B.id WHERE B.`id` IS NULL
UNION
SELECT * FROM tbl_emp A RIGHT JOIN tbl_dept B ON A.deptId = B.id WHERE A.`deptId` IS NULL;

总结:
物理关联 就是设置了级联之后我删除主表而从表自动删除相对应的数据
逻辑关联 就是我java代码中以硬编码的方式先删除从表再删除主表

上白书妖结束寄语:
知识源于积累,登峰造极源于自律

发布了10 篇原创文章 · 获赞 1 · 访问量 281

猜你喜欢

转载自blog.csdn.net/weixin_45016497/article/details/103797936