SQL Server中的外连接(左连接(left join)右连接(right join))

2024-04-24 16:18

本文主要是介绍SQL Server中的外连接(左连接(left join)右连接(right join)),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

零、码仙励志

一、建库和建表

二、外连接的用法

1.左连接(left join)

1.解释:

2.运行原理:

3.实例演示:

2.右连接(right join)

1.解释:

2.实例演示:


零、码仙励志

当你持续的说你非常忙碌,就永远不会得到空闲,当你持续的说你没有时间,就永远不会得到时间,当你持续的说这件事明天再做,你的明天就永远不会来

一、建库和建表

create database scort
use scort
create table emp
(empno int primary key,ename nvarchar(10),sal int,deptno int
)
insert into emp values (7369,'smith',3000,20);
insert into emp values (7499,'allen',1500,10);
insert into emp values (7521,'ward',2850,30);
insert into emp values (7566,'jones',2000,30);
insert into emp values (7654,'martin',5000,10);
insert into emp values (7698,'blake',1800,30);create table dept
(deptno int primary key,dname nvarchar(10),loc nvarchar(10)
)
insert into dept values (10,'accounting','new york');
insert into dept values (20,'research','dallas');
insert into dept values (30,'sales','chicago');
insert into dept values (40,'operations','boston');create table salgrade
(grade int primary key,lostl int,hisal int
)
insert into salgrade values (1,700,1200);
insert into salgrade values (2,1201,1400);
insert into salgrade values (3,1401,2000);
insert into salgrade values (4,2001,3000);
insert into salgrade values (5,3001,6000);

二、外连接的用法

解释:将两个表或两个以上的表以一定的连接条件连接起来,不但返回满足连接条件的记录,而且会返回部分不满足条件的记录。

1.左连接(left join)

1.解释:

将两个表或两个以上的表以一定的连接条件连接起来,不但返回满足连接条件的记录,而且会返回左表不满足条件的记录。

2.运行原理:

1.用左表的第一行分别和右表的所有行进行联接,  如果有匹配的行,则一起输出,如果右表有多行匹配,则结果集输出多行,如果没有匹配行,则结果集中只输出一行,该输出行左边为左表第一行内容,右边全部输出null

2.然后再用左表第二行和右边所有行进行联接,如果有匹配的行,则一起输出,如果右表有多行匹配,则结果集输出多行,  如果没有匹配行,则结果集中只输出一行,该输出行左边为左表第二行内容,右边全部输出null

3.以此类推,直至左边所有行连接完毕

4.因为右边很可能出现有多行和左边的某一行匹配,所以左联接产生的结果集的行数很可能大于left join左边表的记录的总数

3.实例演示:

两张表连接:

select * from emp "E"left join dept "D"on "E".deptno="D".deptno

select * from dept "D"left join emp "E"on "E".deptno="D".deptno

 

三张表连接: 

select * from emp "E"left join dept "D"on "E".deptno="D".deptnoleft join  salgrade "S"on "E".sal>"S".lostl and "E".sal<"S".hisal

select * from dept "D"left join emp "E"on "E".deptno="D".deptnoleft join  salgrade "S"on "E".sal>"S".lostl and "E".sal<"S".hisal

 

2.右连接(right join)

1.解释:

右连接与左连接类似,这里就不再赘述

2.实例演示:

两张表连接:

select * from emp "E"right join dept "D"on "E".deptno="D".deptno

select * from dept "D"right join emp "E"on "E".deptno="D".deptno

 

 三张表连接: 

select * from emp "E"right join dept "D"on "E".deptno="D".deptnoright join  salgrade "S"on "E".sal>"S".lostl and "E".sal<"S".hisal

select * from dept "D"right join emp "E"on "E".deptno="D".deptnoright join  salgrade "S"on "E".sal>"S".lostl and "E".sal<"S".hisal

 

本篇博客来自于郝斌老师视频教程的总结以及笔记的整理,仅供学习交流,切勿用于商业用途,如有侵权,请联系博主删除,博主QQ:194760901 

这篇关于SQL Server中的外连接(左连接(left join)右连接(right join))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/932218

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u