(SQLServer单表多表连接语句总结..docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(SQLServer单表多表连接语句总结.

一: 使用内部连接?即将两个表中的列进行比较 将两个表中满足连接条件的行进行组合起来作为结果他是最长见的表连接形式?在内部连接中表的地位是平等的?内部连接 的语法形式:?1. select??选择列表?from??表名1,表名2??where 表名1.列名1 = 表名2.列名2?Eg: select emplName,deptName from??employees emp,depts dept where emp.deptID = dept.deptID;?2. select 选择列表 from表名1 [inner]??jion??表名2 on??表名1.列名1 = 表名2.列名2?Eg: select??emplName,deptName from employees emp inner join depts dept??on dept.deptID = emp.deptID;二: 使用外部连接?会返回from子句中提到的至少一个表的所有行 只要这些行符合任何where 或having 搜索条件?参与连接的表有主从之分 以主表的每行数据去匹配从表的数据列符合连接条件的列将直接返回到结果集中 对那些不符合连接条件的列将被添上null后返回到结果集中? 外部连接分为: 1.左外部链接 (left join)? ?左外部连接 对连接条件中左表的表不加限制即结果表中保留左关系表的中所有元组 Eg: 查看各个员工所在的部门要求显示所有员工所在的部门没有部门的员工也要显示出来 select emplName,emplAge,deptName from employees emp left join depts dept on dept.deptID =emp.deptID; 2.右外部连接(right join)? ?右外连接?对连接条件中右边的表不加限制?即结果表中保留右关系表中的所有元组 Eg:查看在各个部门中有那些员工要求显示部门中不所有员工没有员工的部门也要显示出来 select emplName,emplAge,deptName from employees emp right join depts dept on dept.deptID =emp.deptID; 3.全外连接(full outer join)? ?全外连接?对两个表都不加限制?所有两个表中的行都会包括在结果集中? ?Eg:也就是说将没有部门的员工显示出来没有员工的部门显示出来 select emplName,emplAge,deptName from employees emp full outer join depts dept on dept.deptID =emp.deptID;?三:使用交叉连接(cross join)?交叉连接即非限制连接 她将两个表不加任何限制的组合起来 没有where子句的交叉连接将产生连接所涉及的表的笛卡尔积?Eg:select emplName,emplAge,deptName from employees emp corss jion depts dept;?四:使用自连接?使用自连接可以看作是一个表的两张副本在连接?Eg:select emp.emplName,emp.emplAge from employees emp,employees emp2?where emp.emplAge = emp2.emplAge and emp2.emplName=钱二;?五:多表连接? 一个简单的例子:? ?--顾客买了什么产品?多少数量? ?--第一种方法 ? ?--select 选择列表 from 选择列表所在的表名 where ?--表名1.列名1=表名2.列名2 and 表名3.列名3 =表名2.列名2.2 ?--第二种方法? ? ?--select 选择列表 from 表1 inner join 表2 on 表1.列名1=表2.列名2? ?--inner join 表3 on 表3.列名3=表2.列名2.2(表2为带有2个主键和外键的表)? ?--所有的顾客买了什么产品 多少数量? ? ?--select 选择列表 from 表1 left join??表2 on 表1.列名1=表2.列名2? --left join 表3 on 表3.列名 = 表2.列名2.2??(表2为带两个主键和外键的表)? --所有产品都被那些顾客买走了?以及多少数量?  ?--select 选择列表 from 表1 right join 表2 on 表1.列名1 = 表2.列名2 ?--right join 表3 on 表3.列名3 = 表2.列名2.2 (表2为带有两个主键和外键的表)???使用关系代数合并数据1 关系代数合并数据集合的理论基

文档评论(0)

yyf7373 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档