连接查询用法:当需要同时返回两张表的信息时使用
语法:
select 列名 [,....n]
from 表1 [INNER]JOIN 表2 //INNER表示内连接
ON 表1.连接字段 = 表2.连接字段
[where search_condition]
//作用:显示
内连接:能匹配则匹配,不能匹配的则不出现在结果集中
SELECT StuID,StuName,Department.DepID,DepName
FROM Student JOIN Department
ON Student.DepID = Department.DepID
WHERE DepName = ‘计算机系’
//查找DepID相同的计算机学生
两表以上的多表连接
语法:
SELECT 列名列表
FROM A JOIN B ON 连接条件1
JOIN C ON 连接条件2....
[WHERE search_condition]
//相当于是先两两连接,结果再与C做连接
外连接:有就显示,没有就用null代替
与内连接相对,参与外连接的表有主次之分。以主表的 每一行数据去匹配从表中的数据列,符合连接条件的数据将 直接返回到结果集中,对那些不符合连接条件的列,将被填 上NULL值后再返回到结果集中。
外连接可以分为左向外连接、右向外连接和完整外部连 接3种情况。(LEFT OUTER JOIN , RIGHT OUTER JOIN, FULL JOIN)。
语法:
SELECT 列名 [,…n]
FROM 表 1 [LEFT|RIGHT]OUTER JOIN 表 2
ON 表 1. 连接字段 = 表 2. 连接字段
[WHERE search_condition]
-
左向外连接
左向外连接以连接(JOIN)子句左侧的表为主表,主表 中所有记录都将出现在结果集中。如果主表中的记录在右表 中没有匹配的数据,则结果集中右表的列值为NULL -
右向外连接
右向外连接以连接(JOIN)子句右侧的表为主表,主 表中所有记录都将出现在结果集中。如果主表中的记录 在左表中没有匹配的数据,则结果集中左表的列值为 -
完整外连接
完整外部连接包括连接表中的所有行,无论它们是否匹 配。在SQL Server中,可以使用FULL OUTER JOIN或 FULL JOIN关键字定义完整外部连接。(相当于左外连接与 右外连接的并集)