首页 > 代码库 > SQL SERVER 多表操作 内连接、外连接

SQL SERVER 多表操作 内连接、外连接

MSSQL 数据库分为 自然连接、内连接、外连接

1、自然连接和内连接基本相同。不同之处在于,自然连接“=”两侧的列属性值必须相同,内连接可以不同,只要读取数据相同即可。

自然连接 eg. select worker.职工号,depart.部门 from worker,depart where worker.部门编号 = depart.部门编号

2、内连接.一般使用INNER JOIN 关键字来表示内连接,INNER不是必须的可以不写。除了JOIN 关键字,还必须使用ON 或者using关键字

内连接查询操作列出和与链接条件相匹配的数据行,它使用比较运算符比较连接两边的列值。

eg. select worker.职工号,depart.部门 from worker JOIN depart ON worker.部门编号 = depart.部门号 (可以列名称不同,只是比较值

3、外连接.又分为左连接、有链接、完全连接

左连接.LEFT OUTER JOIN····ON  左侧的为主表,右侧为从表。以主表的每行数据区匹配从表的每行数据,如果能找到行,则返回匹配结果,没有找到的行,主表直接返回数据,从表以NULL填充

右连接.RIGHT OUTER JOIN  ON .和左查询类似。

eg.

A表(a1,b1,c1) B表(a2,b2)
a1  b1   c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四

03 英语 80 04 王五

select A.*,B.* from A
left outer join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
03 英语 80 NULL NULL

select A.*,B.* from A
right outer join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
NULL NULL NULL 04 王五

SQL SERVER 多表操作 内连接、外连接