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 多表连接查询功能实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • SqlServer2012中First_Value函数简单分析

    First_Value返回结果集中某列第一条数据的值,跟TOP 1效果一样,比较简单的一个函数 先贴测试用代码 DECLARE @TestData TABLE( ID INT IDENTITY(1,1), Department VARCHAR(20), LastName VARCHAR(20), Rate FLOAT ) INSERT INTO @TestData(Department,LastName,Rate) SELECT 'Document Control','Arifin',17.78

  • 图文详解Windows Server2012 R2中安装SQL Server2008

    入手一台Windows Server2012云服务器,搭建一下服务环境,选用SQL Server2008 直奔主题,下好安装镜像后,直接双击 选择运行程序而不获取帮助 如图: 进入安装中心后选择 安装 再选择全新安装 同样选择运行程序而不获取帮助 选择后如图: 程序会检测一下系统,没警告等大问题就可以点确定 输入产品秘钥,也可以选择试用版本:试用版本简直不能忍,我直接上秘钥,关于秘钥我会在最下面给出一个方案 接受条款,下一步 点安装即可 软件又检测一遍,没有警告就可以点下一步 选择第一项即可 你

  • SQL Server 2012无法连接到WMI提供程序(Cannot connect to WMI provider)解决方案

    今天一位同事在启动自己工作机的SQL Server 2012配置管理器时遇到如下报错: 无法连接到 WMI 提供程序.您没有权限或者该服务器无法访问.请注意,您只能使用 SQL Server 配置管理器来管理 SQL Server 2005 服务器. 找不到指定的模块. [0x80041010] Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that yo

  • ASP.net如何连接SQL SERVER 2012数据库

    在web.config文件中添加 <connectionStrings> <add name="SQLConnectionString" connectionString="Data Source=服务器名;Initial Catalog=数据库名;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings

  • SQL Server 2012 创建定时作业(图文并茂,教你轻松快速创建)

    SQL Server2012 如何创建定时作业?有兴趣的可以来看下,图文并茂哦! 1.首先我们打开SQL Server代理,里面选择作业 2.右键作业,选择新建作业 3.填写一些相应的内容,名称和说明自填即可. ***需要注意的是 已启用这个勾要勾选上. 类别我们这里默认即可,按照你的需求可以进行更改. 4.选择步骤 ,点击新建 5.填写步骤名称和所运行的数据库 ***需要注意的是  命令行就是执行你的存储过程 直接写 exec -. 即可 点击 分析 出来这样的对画框就可以了 6.点击计划  

  • SqlServer2012中LEAD函数简单分析

    LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本 DECLARE @TestData TABLE( ID INT IDENTITY(1,1), Department VARCHAR(20), LastName VARCHAR(20), Rate FLOAT ) INSERT INTO @TestData(Department,LastName,Rate) SELECT 'Document Control','Arifin',17.7885 UNI

  • Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法

    对比下面两个脚本的速度: Windows 7 用 localhost 连接本地 MySQL,速度会很慢. Windows 7 用 127.0.0.1 连接本地 MySQL,速度则是正常的. my.ini里配置了 bind-address=127.0.0.1 用localhost连接本地MySQL: 速度慢 <?php $start = microtime(true); $mysqli = new mysqli('127.0.0.1', 'root', '', 'mysql'); //连接耗时仅为

  • 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 Jo

  • AngularJs表单校验功能实例代码

    废话不多说了,具体代码如下所示: <!DOCTYPE html> <html ng-app="angularFormCheckModule"> <head> <meta charset="UTF-8"> <title>angular表单校验</title> <link rel="stylesheet" href="../css/bootstrap.min.cs

  • MyBatis多表连接查询的实例教程

    多表连接的两种方式(数据库逻辑模型): 1.一对一关系 2.一对多关系 一.通过 resultMap 和 association 实现一对一关系 在 mapper.xml 文件里面的代码: <resultMap type="com.pojo.TRecruitment" id="tRecruitmentCollegeResultMap"> <id property="id" column="id" />

  • SQL Server 2012使用Offset/Fetch Next实现分页数据查询

    在Sql Server 2012之前,实现分页主要是使用ROW_NUMBER(),在SQL Server2012,可以使用Offset ...Rows  Fetch Next ... Rows only的方式去实现分页数据查询. select [column1] ,[column2] ... ,[columnN] from [tableName] order by [columnM] offset (pageIndex-1)*pageSize rows fetch next pageSize r

  • 浅述SQL Server的聚焦强制索引查询条件和Columnstore Index

    前言 本节我们再来穿插讲讲索引知识,后续再讲数据类型中的日期类型,简短的内容,深入的理解. 强制索引查询条件 前面我们也讲了一点强制索引查询的知识,本节我们再来完整的讲述下 (1)SQL Server使用默认索引 USE TSQL2012 GO SELECT * FROM Sales.Orders 上述就不用我再啰嗦了,使用默认主键创建的聚集索引来执行查询执行计划. (2)SQL Server使用强制索引 USE TSQL2012 GO SELECT custid FROM Sales.Orde

  • SQL Server 2012 安全概述

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间. 从让人眼花缭乱的客户端使用连接,通过到处分布的网络,尤其是互联网,关系数据库在各种应用程序里广泛使用.这使数据对任何人,在任何地方都可访问.数据库可以保存人类知识的很大部分,包括高度敏感的个人信息和让国际商务工作的关

  • 基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

    两年前的<SQL Server 2008 R2数据库镜像部署>,今天"再续前缘"-- 微软新一代数据库产品SQL Server 2012已经面世一段时间了,不管从功能上讲还是性能上的体现,较之其早期产品都有了很大提升.特别是其引入高可用性组(AlwaysOn Group, AG)这一概念和功能,大大增强和提高了SQL Server的可用性,在之前的镜像数据库的基础上有了质的变化. SQL Server 2012高可用性组在实现过程中较之早起的SQL Server故障转移群集

  • SQL Server 性能调优之查询从20秒至2秒的处理方法

    一.需求 需求很简单,就是需要查询一个报表,只有1个表,数据量大约60万左右,但是中间有些逻辑. 先说明一下服务器配置情况:1核CPU.2GB内存.机械硬盘.Sqlserver 2008 R2.Windows Server2008 R2 SP1和阿里云的服务器,简单说就是阿里云最差的服务器. 1.原始表结构 非常简单的一张表,这次不讨论数据冗余和表字段的设计,如是否可以把Project和Baojian提出成一个表等等,这个是原始表结构,这个目前是没有办法改变的. 2.查询的sql语句为 sele

  • MyBatis Plus 实现多表分页查询功能的示例代码

    在Mybatis Plus 中,虽然IService 接口帮我们定义了很多常用的方法,但这些都是 T 对象有用,如果涉及到 多表的查询,还是需要自定义Vo 对象和自己编写sql 语句,Mybatis Plus提供了一个Page 对象,查询是需要设置其中的 size 字段 和 current 字段的值 一.分页配置 可以直接使用selectPage这样的分页,但返回的数据确实是分页后的数据,但在控制台打印的SQL语句其实并没有真正的物理分页,而是通过缓存来获得全部数据中再进行的分页,这样对于大数据

随机推荐