SQL Server 2012 多表连接查询功能实例代码

 更新时间:2017年01月29日 10:34:52   作者:i-shanghai  
这篇文章主要介绍了SQL Server 2012 多表连接查询功能实例代码,需要的朋友可以参考下

废话不多说了,直接给大家贴代码了,具体代码如下所示:

-- 交叉连接产生笛卡尔值 (X*Y)
SELECT *
FROM  Student
    cross Join dbo.ClassInfo 
--另外一种写法
SELECT *
FROM  Student , ClassInfo 
-- 内连接 (Inner 可以省略)
SELECT *
FROM  Student
    JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID;
-- Inner Join
SELECT *
FROM  Student
    INNER JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID;
   -- on 条件,通常是 主外键,但是不限于主外键
   -- on 条件,允许有多个,而且可能是针对某个表的
SELECT *
FROM  Student
    INNER JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID
    AND dbo.Student.Class IN (1,2) -- 针对Student表增加查询条件
-- 不等于 (笛卡尔值减去 相等的值)
SELECT *
FROM  Student
    INNER JOIN dbo.ClassInfo ON dbo.Student.Class <> dbo.ClassInfo.ID;
--自连接 从Class表中查询到Class所在的系
SELECT T1.* ,T2.ClassName FROM dbo.ClassInfo AS T1
    INNER JOIN dbo.ClassInfo AS T2 ON T1.PID=T2.ID
-- Left Join
SELECT *
FROM  Student
    Left JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID;
-- Right Join
SELECT *
FROM  Student
    RIGHT  JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID;
-- 全外连接
SELECT *
FROM  Student
    FULL OUTER JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID;
-- 外连接和内连接的区别是:
-- 内连接,on条件不符合的话,会过滤掉数据
-- 外连接,以保留表为主,on条件成立显示数据,否则显示NULL
--Union 纵向连接
SELECT StuID,StuName,StuEnName,StuAge,StuBirthday
FROM  Student WHERE StuID<=2
UNION
SELECT StuID,StuName,StuEnName,StuAge,StuBirthday
FROM dbo.Student WHERE StuID>2
--Union 去重复
SELECT StuSex
FROM  Student WHERE StuID<=2
UNION
SELECT StuSex
FROM dbo.Student WHERE StuID>2
--Union 显示全部
SELECT StuSex
FROM  Student WHERE StuID<=2
UNION ALL
SELECT StuSex
FROM dbo.Student WHERE StuID>2
--Except 差集,排除
SELECT StuID,StuName,StuEnName,StuAge,StuBirthday
FROM  Student
Except
SELECT StuID,StuName,StuEnName,StuAge,StuBirthday
FROM dbo.Student WHERE StuID<=2
--Intersect 交集
SELECT StuID,StuName,StuEnName,StuAge,StuBirthday
FROM  Student WHERE StuID>=2
Except
SELECT StuID,StuName,StuEnName,StuAge,StuBirthday
FROM dbo.Student WHERE StuID<=3

以上所述是小编给大家介绍的SQL Server 2012 多表连接查询功能实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • 自己收集比较强大的分页存储过程 推荐

    自己收集比较强大的分页存储过程 推荐

    这两天帮朋友修改一个项目,看到一个存储过程,感觉性能非常高。于是,整合自己以前搜集的比较好的存储过程,拿来跟大家分享下
    2011-11-11
  • 对SQL Server中敏感数据进行加密解密的操作方法

    对SQL Server中敏感数据进行加密解密的操作方法

    近几年有不少关于个人数据泄露的新闻(个人数据通常包含如姓名、地址、身份证号码、财务信息等),给事发公司和被泄露人都带来了不小的影响,所以本文给大家介绍了如何对SQL Server中的敏感数据进行加密解密,需要的朋友可以参考下
    2024-05-05
  • 数据库清除日志文件(LDF文件过大)

    数据库清除日志文件(LDF文件过大)

    数据库清除日志文件,(LDF文件过大),一般情况下,有更简单的方法,需要在sqlserver查询执行。
    2009-11-11
  • SQL Server实现自动循环归档分区数据脚本详解

    SQL Server实现自动循环归档分区数据脚本详解

    最近在工作中遇到了关于sql server的一个问题,通过查找相关的资料终于解决了,所以下面这篇文章主要给大家介绍了关于SQL Server如何实现自动循环归档分区数据脚本的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • SSMS中出现两个相同的服务器名称的问题解决

    SSMS中出现两个相同的服务器名称的问题解决

    在SSMS的【连接到服务器】页面,有时候可能会出现多个相同的服务器名称本文主要介绍了SSMS中出现两个相同的服务器名称的问题解决,感兴趣的可以了解一下
    2024-05-05
  • 将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)

    将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)

    这篇文章介绍了ACCESS数据库迁移到SQLSERVER数据库两种方法,有需要的朋友可以参考一下
    2013-10-10
  • SQL Server中使用表变量和临时表

    SQL Server中使用表变量和临时表

    这篇文章介绍了SQL Server中使用表变量和临时表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 在SQL Server中使用ISNULL执行空值判断查询

    在SQL Server中使用ISNULL执行空值判断查询

    这篇文章主要介绍了在SQL Server中使用ISNULL执行空值判断查询,ISNULL的好处是可以直接写在SELECT查询语句中,需要的朋友可以参考下
    2014-08-08
  • sql中all,any,some用法

    sql中all,any,some用法

    sql中all,any,some用法实现语句,需要的朋友可以看下。
    2009-10-10
  • sql server2022彻底卸载全过程

    sql server2022彻底卸载全过程

    这篇文章主要给大家介绍了关于sql server2022彻底卸载的相关资料,按照下面的文章操作可以完全卸载 SQL Server的现有实例,并对系统进行准备以便可以重新安装 SQL Server,需要的朋友可以参考下
    2023-10-10

最新评论