sql中内连接和外连接的区别

sql中内连接和外连接的区别对于两张表 外连接和内连接的区别在于 内连接 只显示两表 id 匹配的左外连接 显示 join 左边的表的所有数据 不管两表是否匹配 对于不匹配的部分都用 NULL 显示右外连接 与左外连接相反 显示 join 右边的表的所有数据我们直接用题来解释 假设有两个表 stu 和 exam 该表结构如上 我们要显示所有学生的成绩 那么内连接和外连接的方式分别为 插入数据请自己补全 create

对于两张表,外连接和内连接的区别在于:

内连接:只显示两表id匹配的
左外连接:显示join左边的表的所有数据(不管两表是否匹配),对于不匹配的部分都用NULL显示
右外连接:与左外连接相反,显示join右边的表的所有数据




我们直接用题来解释。 

sql中内连接和外连接的区别

 假设有两个表stu和exam,该表结构如上,我们要显示所有学生的成绩,那么内连接和外连接的方式分别为(插入数据请自己补全):

create table stu( Id int, Name varchar(40)) create table exam( Id int, Grade int) insert into exam values(11,89) select * from stu select * from exam --【显示所有学生的成绩】 --内连接(只显示两表id匹配的) select stu.id,exam.id,stu.name,exam.grade from stu inner join exam on stu.id=exam.id --左外连接(显示join左边的表的所有数据,exam只有两条记录,所以stu.id,grade都用NULL显示) select stu.id,exam.id,stu.name,exam.grade from stu left join exam on stu.id=exam.id --右外连接(与左外连接相反,显示join右边的表的所有数据) select stu.id,exam.id,stu.name,exam.grade from stu right join exam on stu.id=exam.id

 对于插入完的数据查询结果应该是这样的:

sql中内连接和外连接的区别

1.如果用内连接显示所有学生的成绩, 那么他会只显示两表id匹配的

sql中内连接和外连接的区别

2.对于左外查询,他会显示join左边的表的所有数据,exam只有两条记录,所以stu.id,grade都用NULL显示 

sql中内连接和外连接的区别

3.右连接与左连接相反,显示join右边的表的所有数据 

sql中内连接和外连接的区别

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176185.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:31
下一篇 2026年3月26日 下午10:32


相关推荐

  • puremvc的unity案例_游戏防闪退框架

    puremvc的unity案例_游戏防闪退框架作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名2.5中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接).参考资料[1]    PureMVC官方网站:www.puremvc.org[2]    Wikipedia:http://zh.wikipedia.org/zh-cn/MVC[

    2025年8月13日
    6
  • dynamoDB数据库

    dynamoDB数据库首先安装 AWSCLI 安装后 在 cmd 输入 awsversion 检验是否安装成功然后 在 cmd 输入 awsconfigure 设置 aws 的密钥最后使用一下代码进行数据库的 CRUD 操作如果能帮助大家请手动点赞 packagecom skysoft modules controller importcom amazonaws services dynamodbv2 AmazonDyn

    2026年3月18日
    2
  • 你有没有想过,在SpringBoot集成下,Mybatis的mapper代理对象究竟是如何生成的?

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:青石路 cnblogs.com/youzhibing/p/10486307.html 前情回顾 之前我们讲到了…

    2021年6月24日
    70
  • jstat使用_jvm常用命令

    jstat使用_jvm常用命令如何判断JVM是否存在内存问题呢?判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。Jstat是JDK自带的一个轻量级小工具。全称“JavaVirtualMachinestatisticsmonitoringtool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能…

    2025年10月31日
    5
  • 推荐.Net、C# 逆向反编译四大工具利器(请勿用来非法行为)[通俗易懂]

    推荐.Net、C# 逆向反编译四大工具利器(请勿用来非法行为)[通俗易懂]在项目开发过程中,估计也有人和我遇到过同样的经历:运行环境出现了重大Bug亟需解决、或者由于电脑挂了、旧代码覆盖新代码,而在这种情况下,我们不能直接在当前的代码中修改这个Bug然后发布,这会导致更严重的问题,因为相当于版本回退了。还有电脑挂了代码整个都没有,这种情况下我们只能只能利用一些逆向的技巧和工具了来解析在服务器发布好的dll。那么你只是单纯的修改一个.Net程序集中的某个方法或功能,而

    2022年6月22日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号