inner join 和outer join

article/2025/9/26 6:03:37

 内连接(INNER JOIN)

内连接也称为等同连接,返回的结果集是两个表中所有相匹配的数据,而舍弃不匹配的数据。也就是说,在这种查询中,DBMS只返回来自源表中的相关的行,即查询的结果表包含的两源表行,必须满足ON子句中的搜索条件。作为对照,如果在源表中的行在另一表中没有对应(相关)的行,则该行就被过滤掉,不会包括在结果表中。内连接使用比较运算符来完成。内连接可分为两种。

1.等值连接

使用等于号(=)比较被连接列的列值,在查询结果中列出被连接表中的所有列,包括其中的重复列。图9.12给出了典型的等值内连接示意图。

 

 
图9.12  等值内连接

 

实例8  使用INNER JOIN内连接查询

从STUDENT表和TEACHER表中查询学生姓名、所在系、所修的所有课程的课程号以及开课教师姓名。在9.3.2节已经通过WHERE子句实现了该实例,这里通过INNER JOIN内连接两表来实现。实例代码:

 

SELECT       SNAME, S.DNAME, S.CNO, TNAME
FROM      STUDENT AS S
INNER JOIN  TEACHER AS T
ON    S. CNO = T. CNO
ORDER BY  SNAME

 

运行结果如图9.13所示。

 

 
图9.13  使用INNER JOIN实现的查询结果

 

可以看到,通过INNER JOIN内连接两表也得到了同样的结果。

2.不等连接

在连接条件中,可以使用其他比较运算符,比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

实例9  使用不等连接进行查询

查询学生修的非本系教师开设的课程信息,包括学生学号、姓名、所在系、课程号、成绩、以及开课教师的姓名信息。实例代码:

 

SELECT     S.SNO, SNAME, S. DNAME, S.CNO, MARK, TNAME
FROM      STUDENT AS S
INNER JOIN  TEACHER AS T
ON    S. DNAME<> T. DNAME
AND   S. CNO =T. CNO
ORDER BY     SNAME

 

运行结果如图9.14所示。

 

 
图9.14  不等连接的查询结果

 

说明 在默认情况下,DBMS将多表查询按INNER JOIN来执行,除非指定OUTER JOIN。即,如果将上例中的INNER JOIN关键字替换为JOIN也会得到同样的结果。


当然也可以使用WHERE子句实现上例。代码如下。

 

SELECT   S.SNO, SNAME, S. DNAME, S.CNO, MARK, TNAME
FROM   STUDENT AS S, TEACHER AS T
WHERE  S.DNAME <> T.DNAME
AND   S.CNO = T.CNO
ORDER BY     SNAME

 

运行结果如图9.15所示。

当然,使用INNER JOIN也可以实现多表的内连接,但是INNER JOIN一次只能连接两个表,要连接多表,必须进行多次连接。

 

 
图9.15  使用WHERE子句实现的不等连接

 

实例10  使用INNER JOIN实现多表的内连接

根据TEACHER表、COURSE表和STUDENT表,查询所有学生的姓名、所在系、所修课程、考试时间、课程成绩及授课教师姓名。该列与9.2.3节的实例完全相同,只是在9.2.3节采用WHERE子句的方式实现,这里采用INNER JOIN内连接的方式实现,代码如下。

 

SELECT   SNAME, STUDENT.DNAME, CNAME, CTEST, MARK, TNAME
FROM   TEACHER
INNER JOIN  COURSE
ON     TEACHER.CNO = COURSE.CNO
INNER JOIN  STUDENT
ON     TEACHER.CNO = STUDENT.CNO
ORDER BY     SNAME

 

运行结果如图9.16所示。

 

 
图9.16  使用INNER JOIN实现内连接查询结果

 


http://chatgpt.dhexx.cn/article/Y0ZY115T.shtml

相关文章

SQL连接表(内连接、左连接、右连接、交叉连接、全外连接)

分享一些自己的连表总结 什么是连接表&#xff1f; 多表查询原理&#xff1a;将多个表通过笛卡尔积形成一个虚表&#xff0c;再根据查询条件筛选符合条件的数据。 在关系数据库中&#xff0c;数据分布在多个逻辑表中。 要获得完整有意义的数据集&#xff0c;需要使用连接来查询…

内连接与外连接(全网最详细)

目录 前言 一、内连接 二、外连接 1.左外连接 2.右外连接 3.满外连接 三、UNION的使用 四、7种SQL JOINS的实现 前言 在学习内连接与外连接之前&#xff0c;你不妨思考为什么要引入这两种连接方式&#xff0c;带着问题去学习&#xff0c;更有助于我们对知识的学习。 其…

LDF explorer使用问题记录

本文章并不是使用教程&#xff01; 问题1&#xff1a;信号必须要设置“Unit”值 当信号时枚举值或其他非物理信号&#xff0c;我们不为其设置Unit属性时&#xff0c;通过NCF工具生成源文件时&#xff0c;会报错&#xff0c;如下图所示&#xff1a; 通过文本方式打开ldf文件…

SqlServer如何导入mdf、ldf文件

1、sqlserver数据库中可以直接拷贝mdf和ldf文件对sqlserver数据库中的数据进行备份&#xff0c;然后通过数据库管理软件加载mdf和ldf文件加载数据库数据。 2、如果拷贝mdf和ldf文件失败时可以先在服务中停止SQL Server(MSSQLSERVER)服务 3、如下两种方法亲证都可行 第一种方法…

SqlServer2008Ldf文件过大处理

ldf文件是数据库的操作日志文件&#xff0c;用于数据库的数据恢复&#xff1b; 缩小体积的方法&#xff1a; 第一步&#xff1a;设置数据库成简单模式&#xff0c;在master下执行 ALTER DATABASE databasename SET RECOVERY SIMPLE; 第二步&#xff1a;缩小数据库体积到1024MB …

SqlServer怎么导入mdf、ldf文件

第一种方法: 1.打开SQL Server&#xff0c;写好登录名和密码点击连接. 2.打开数据库&#xff0c;右键某一个数据库&#xff0c;选择“新建查询&#xff08;Q&#xff09;”。 3.再代码界面输入如下代码&#xff0c;点击F5键或者点击运行按钮即可。 代码如下&#xff1a; EXEC…

sql server处理/压缩LDF文件

LDF/MDF文件太大了&#xff0c;要压缩处理 SELECT NAME, recovery_model_desc FROM sys.databases 查看是什么模式这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话&#xff0c;可以用以下注释的语句进行查询 USE DNName GO SELECT file_id, nameFROM s…

服务器mdf ldf文件,sqlserver2008如何导入mdf,ldf文件

网上找了很多解决sql server导入其他电脑拷过来的mdf文件&#xff0c;多数是不全&#xff0c;遇到的解决方法不一样等问题&#xff0c;下边是找到的解决问题的最全面方法&#xff01; 将mdf&#xff0c; ldf文件导入到sql server 2008数据库当中&#xff0c;下面提供两种办法: …

ldf文件怎么储存到mysql中_sqlserver数据库的ldf文件太大,我们如何压缩ldf日志文件...

使用sqlserver数据库的数据有两个文件&#xff0c;分别是mdf和ldf。 mdf是数据文件&#xff0c;另外一个ldf为日志文件。随着网站的运行&#xff0c;你会发现ldf这个文件会越来越大&#xff0c;我们如何压缩ldf日志文件。 网上有很多收缩ldf文件的方法&#xff0c;但比较杂乱&a…

SQLServer数据库丢失ldf文件的恢复

某个数据库例如CXPT2&#xff0c;只把CXPT2.mdf文件留下来了&#xff0c;ldf文件没有留下来&#xff0c; 启动的时候显示显示 CXPT2[可疑]&#xff0c;不知道怎么解决&#xff0c;这时候CXPT2.mdf目录下有一个旧的ldf文件&#xff0c; 后来看了网上的帖子&#xff0c;就把ldf…

mdf ldf 导入 mysql_mdf, ldf文件导入到sql server 2005的方法

在实际的工作中, 有很多涉及到数据库资料的备份,转移, 恢复等方面的工作, 但是并不是所有的资料都是以.bak格式存在的, 比如说, 你想从正在运行的数据库中把mdf, ldf格式的文件导出来,而在正在运行的数据库中则不能进行这样的操作, 同样, 当你已经拥有了mdf, ldf这样的文件想导…

LDF转Excel;LDF转位定义;Excel转LDF;Excel转位定义;MatrixCreat(四)之工具使用

工具使用 一、摘要1.描述2.关键字 二、什么时候需要使用MatrixCreat工具三、MatrixCreat转换后效果图四、MatrixCreat运行环境五、MatrixCreat使用介绍六、MatrixCreat配置详解1.ProjectName2.EndianType3.BitsName4.SheetName5.ParasRowNum6.VariableNameLenth7.NameIsEqual8.…

mdf ldf 转mysql_SQL Server的ldf和mdf文件转移

再仔细检查一下&#xff0c;发现是MSSQLDATA文件夹下&#xff0c;有太多的mdf和ldf文件了&#xff0c;而且有几个是好几G大小的。其实就是这两个文件。 平时各种还原库&#xff0c;也不太注意这个&#xff0c;没想到后果这么严重&#xff0c;于是在网上搜索研究了一下怎么把这些…

S32DS导入外部LDF文件出错处理办法

文章目录 前言1.LIN版本更迭2.LDF简介2.1 LIN2.1版本LDF2.1.1 全局定义2.1.2 节点定义2.1.3 信号定义2.1.3.1 标准信号定义2.1.3.2 诊断信号定义&#xff08;可选&#xff09; 2.1.4 帧定义2.1.4.1 无条件帧定义2.1.4.2 事件触发帧定义&#xff08;可选&#xff09;2.1.4.3 零星…

【从LDF到C语言】

从LDF到C语言 frame的Init list 汽车电子中我们经常要将LDF翻译成C语言。其中有不少需要注意的点。 frame的Init list 下面举一个例子。 LDF中有一个Frame名为Test_cmd, 这个frame中有很多的signal如下图 从图中可以看出&#xff0c;Signal在Frame中并不是连续排列的。 第一个…

ADSP21489工程中LDF文件配置详解

一直都没有搞懂LDF文件是怎么回事,后续翻到这个文档<cces-LinkerUtilities-manual.pdf>才认真的看了一下 先搞懂ADSP21489的片上RAM空间大小是5Mbit 5Mbit 160k字的32位数据 320k 字的16位数据 106.7k字的48位指令(或40位数据)或不同大 小字的组合 只要不超过…

服务器mdf ldf文件,数据库mdf和ldf文件上传到服务器

数据库mdf和ldf文件上传到服务器 内容精选 换一换 使用DLI提交SQL作业查询数据。基本流程如下&#xff1a;步骤1&#xff1a;登录华为云步骤2&#xff1a;上传数据至OBS步骤3&#xff1a;登录DLI管理控制台步骤4&#xff1a;创建队列步骤5&#xff1a;创建数据库步骤6&#xff…

BUSMASTER LDF编辑工具制作LDF文件

本文摘要&#xff1a;本文章介绍如何使用BUSMASTER V3.2.2软件中的LDF编辑工具制作LDF文件 使用软件&#xff1a;BUSMASTER V3.2.2 -> LDF Editor 软件下载地址&#xff1a; https://download.csdn.net/download/m0_50669075/85190261 以下叙述的步骤只是为了描述清晰&a…

mdf ldf 导入 mysql_mdf和ldf导入数据库

Sql Server 错误5123/5120 附加数据库错误 Microsoft Sql Server 在附加数据库时&#xff0c;重装了系统并重命名主机名 或者 使用windows身份登陆 都有可能造成这个结果在Vista 或者Windows7下可能会报这样的错误 原因是对想要附加的数据库文件(.mdf)和日志文件(.ldf) 没有操作…

LDF文件步骤及内容详解

LDF文件第一部分——ldf文件配置 LIN_description_file; //LIN描述文件 LIN_protocol_version 2.1;//LIN协议版本 LIN_language_version 2.1; //LIN语言版本 LIN_speed 19.2 kbps; //LIN的通信速度 第一部分是必不可少的&#xff0c;属于全局定义。我们可以把等号左边…