本文主要是介绍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))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!