1、简单笔记

数据库查询语句中,通过UNION组合查询语句,可以将两个或更多查询的结果组合为单个结果集,该结果集包含组合查询中的所有查询的全部行。

利用UNION语句可以实现将不同数据表中符合条件,不同列种的数据信息,显示在另一个表中.

语法格式:

select 语句 union select 语句 where 条件表达式 ;

在使用Union运算符时遵循以下准则:

(1)所有选择列表的表达式的数目必须相同(列名,算术表达式,聚合函数等)

select stu_id as 学号,stu_math as 数学成绩 from Score where stu_english>60
union
select stu_id as 学号,stu_age as 年龄 from Students where stu_sex=0;

(2)在查询结果集中的相应列或个别查询中使用的任意列的子集必须具有相同的数据类型,并且两种数据类型之间必须存在可能的隐性数据转换,或者提供显示数据转换

select 学生姓名 from Students
union
select convert(varchar(20),总分) from Grade where 总分>600
union
select 课程名称 from Course;

(3)用Union运算符组合个各语句中对应的结果集列出现的顺序必须相同,因为Union运算符是按照各个查询给定的顺序逐个比较各列
(4)在Union操作中组合不同的数据类型时,这些数据类型将使用数据类型优先级的规则进行转换。例如int值转换成float,因为float类型的优先权比Int类型高

(5)通过Union生成的表中的列名来自Union语句中的第一个单独的查询,若要用新列名引用结果集中的某列,必须按照第一个select语句中的方式引用该列

2、对组合查询后的结果进行排序

select 年龄 as 信息 from Students
union
select 学分 from Grade
union
select 课程编号 from Scourse
order by 信息 ASC

3、获取组合查询中两个结果集的交集

select 学生编号,学生姓名 from Students
intersect
select 学生编号,学生姓名 from Score;

4、获取组合查询中两个结果集的差集

select 学生编号,学生姓名 from Students
except
select 学生编号,学生姓名 from Score;

等值连接与自然连接的区别:

1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。
2. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接
5、简单内连接查询
select Students.stu_id,stu_name,stu_age,stu_sex,stu_birthday,Score.stu_math from Students
inner join Score on Students.stu_id=Score.stu_id;

什么是内连接查询?
内连接是用比较运算符将要连接数据列的值连接,内连接INNER JOIN只返回同时和两个表或结果集匹配的数据行

什么是等值连接?

等值连接是指在连接条件中使用等号(=)运算符比较连接数据列的值,在查询结果中列出本连接表中的所有数据列,包括其中的重复数据列,等值连接用于返回所有连接表中具有匹配值的行,而排除其他的行。

不等连接<>

通常不等连接只有与自然连接同时使用才有意义

select stu1.*  from Students as stu1
inner join stu2 as stu2
on stu1.所在学院<>stu2.所在学院
and stu2。Name='张三';

二、外连接
外连接OUTER JOIN包括左外连接LEFT OUTER JOIN 和 右外连接RIGHT OUTER JOIN。

外连接OUTER JOIN要求数据库系统返回的不仅是和所指定的判断标准匹配的行信息,同时也需要把连接体中的不匹配的信息返回,利用左外连接可以实现统计数据的功能。

左外连接:Left outer join查询--将左外连接左边的数据表的所有数据记录都包含在查询结果集中,而只将右边数据表中有匹配的数据记录添加到结果集

select st.姓名,st.性别,st.年龄,gr.总分 from tb_Student as st
left outer join tb_Grade as gr
on st.学生编号=gr.学生编号;

右外连接:Right outer join查询--将右外连接右边的数据表的所有数据记录都包含在查询结果集中,而只将左边数据表中有匹配的数据记录添加到结果集

select st.姓名,st.性别,st.年龄,gr.总分 from tb_Student as st
Right outer join
tb_Grade as gr
on st.学生编号=gr.学生编号;
 

Union-SQL Server学习笔记的更多相关文章

  1. 【SQL Server学习笔记】Delete 语句、Output 子句、Merge语句

    原文:[SQL Server学习笔记]Delete 语句.Output 子句.Merge语句 DELETE语句 --建表 select * into distribution from sys.obj ...

  2. SQL server 学习笔记1

    1.查询安装的排序规则选项喝当前的排序规则服务器属性 select * from fn_helpcollations(); 2.查看当前服务器的排序规则 select serverproperty(' ...

  3. sql server 学习笔记 ( backup 备份方案 )

    做个记入就好 USE [master] SELECT bs.database_name AS 'Database Name', bs.backup_start_date AS 'Backup Star ...

  4. 【SQL Server学习笔记】事务、锁定、阻塞、死锁 sys.sysprocesses

    http://blog.csdn.net/sqlserverdiscovery/article/details/7712068 Column name Data type Description   ...

  5. SQL SERVER学习笔记:临时表与表变量

    本文主要摘自徐海蔚的<Microsoft SQL SERVER企业级平台管理实践> 表变量可以作为存储过程的返回参数,而临时表不行.(存疑?表值参数只在SQL SERVER2008才开始支 ...

  6. sql server 学习笔记 (nested transaction 嵌套事务)

    什么时候会用到嵌套事务 ? 为了代码复用,我们会写许多的储蓄过程,而中间如果需要使用到 transaction 难免就会发生嵌套了. sql server 并不直接支持嵌套事务. 但它可以用一些招式来 ...

  7. Sql Server学习笔记

    1.指定路径创建数据库 create database student on--创建库的时候必须写 ( name=student, filename='E:\database\student.mdf' ...

  8. sql server 学习笔记 ( row_number, rank, dense_rank over partition by order by )

    refer : https://blog.csdn.net/winer2008/article/details/4283539 https://www.cnblogs.com/linJie193090 ...

  9. sql server 学习笔记

    1. 修改student表中sdept字段改为varchar类型,长度为30,并且不为空 ) not null 2. 删除student表中的address列 alter table student ...

  10. 【SQL SERVER学习笔记】Sqlserver游标的尝试

    DECLARE @ProName NVARCHAR(50)DECLARE @CityName NVARCHAR(50)DECLARE @ProId INT DECLARE @CityId INT DE ...

随机推荐

  1. js时间冒泡,阻止事件冒泡

    首先解释一下事件冒泡神什么, 在js中,假如在div中嵌套一个div 如 <style type="text/css"> #box1{width:500px;heigh ...

  2. 来自Google产品管理和营销高级副总裁Jonathan Rosenberg的42条军规(转)

    #35 营造一个说 yes 的文化 你想要建立一个充满正能量和积极思考的地方.“组织里有阻碍变革发生的抗体.所以许多大公司无法创新.如果你是一个创新者,你就变成了病毒,所有的抗体都想杀死你.”在这种情 ...

  3. idea 文件名乱码问题的解决

    参考:http://www.cnblogs.com/xingma0910/p/4651889.html idea:文件名乱码:

  4. HTML+css实现图片全屏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 微信JS-SDK]微信公众号JS开发之卡券领取功能详解

    js sdk: http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E9.99.84.E5.BD.952-.E6 ...

  6. 【ILSpy反编译】C# 写的程序反编译查看是不是也太容易了点吧,太恐怖了。。。

    最近由于要写一些界面的东西,写了几个月c#(之前一直做c/c++项目),发现c#写界面很方便,效果也不错,在这个过程中也听说c#程序可以很容易被反编译到,但一直也没时间去自己反编译去试着看看,心想就算 ...

  7. sessionStorage html5客户端本地存储之sessionStorage及storage事件

    可以看一下<JavaScript本地存储实践(html5的localStorage和ie的userData)>sessionStorage和上文中提到的localStorage非常相识,方 ...

  8. iOS动画 三维透视投影 m34

    transform的结构如下:struct CATransform3D{  CGFloat m11, m12, m13, m14;  CGFloat m21, m22, m23, m24;  CGFl ...

  9. activiti搭建(五)BPMN介绍

    转载请注明源地址:http://www.cnblogs.com/lighten/p/5931207.html 对于BPMN我也不是十分清楚,目前也只是因为对于Modeler中不熟悉的组件查询,来对这部 ...

  10. .net4.0注册到IIS

    IIS和.netfw4.0安装顺序是从前到后,如果不小心颠倒了,无所谓. 打开程序-运行-cmd:输入一下命令重新注册IIS C:\WINDOWS\Microsoft.NET\Framework\v4 ...