菜鸟学习日记(SQL Sever)——连接表

  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

INNER JOIN:内连接

注:INNER JOIN 与 JOIN 是相同的

若有如下两个表,表名分别为People和Department

那么可以用INNER JOIN 将两个表连接起来进行查询

select P.PeopleName,D.DepartmentName from People P INNER JOIN Department D ON P.DepartmentID=D.DepartmentID;

查询结果为:

LEFT JOIN:左连接

select P.PeopleName,D.DepartmentName from People P LEFT JOIN Department D ON P.DepartmentID=D.DepartmentID;

当People表中存在有数据DepartmentID是Department中没有的DepartmentID时,进行以上操作,仍然能查出People表中的数据

RIGHT JOIN:右连接

select P.PeopleName,D.DepartmentName from People P RIGHT JOIN Department D ON P.DepartmentID=D.DepartmentID;

当Department表中存在有数据DepartmentID是People中没有的DepartmentID时,进行以上操作,仍然能查出Department表中的数据

FULL JOIN 结合了 LEFT JOIN 和 RIGHT JOIN 的结果

UNION 操作符

注:UNION 不能用于列出两个表中所有的country。如果查询出来的值有重复值,UNION 只会选取不同的值。如果要查询出所有的值,那么要使用 UNION ALL 来选取重复的值!

若有如下两个表Employee表和People表,

那么执行以下查询语句,能得到以下结果

select PeopleName,DepartmentId from People union select EmployeeName,DepartmentId from Employee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值