Union-SQL Server学习笔记
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;
等值连接与自然连接的区别:
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学习笔记的更多相关文章
- 【SQL Server学习笔记】Delete 语句、Output 子句、Merge语句
原文:[SQL Server学习笔记]Delete 语句.Output 子句.Merge语句 DELETE语句 --建表 select * into distribution from sys.obj ...
- SQL server 学习笔记1
1.查询安装的排序规则选项喝当前的排序规则服务器属性 select * from fn_helpcollations(); 2.查看当前服务器的排序规则 select serverproperty(' ...
- sql server 学习笔记 ( backup 备份方案 )
做个记入就好 USE [master] SELECT bs.database_name AS 'Database Name', bs.backup_start_date AS 'Backup Star ...
- 【SQL Server学习笔记】事务、锁定、阻塞、死锁 sys.sysprocesses
http://blog.csdn.net/sqlserverdiscovery/article/details/7712068 Column name Data type Description ...
- SQL SERVER学习笔记:临时表与表变量
本文主要摘自徐海蔚的<Microsoft SQL SERVER企业级平台管理实践> 表变量可以作为存储过程的返回参数,而临时表不行.(存疑?表值参数只在SQL SERVER2008才开始支 ...
- sql server 学习笔记 (nested transaction 嵌套事务)
什么时候会用到嵌套事务 ? 为了代码复用,我们会写许多的储蓄过程,而中间如果需要使用到 transaction 难免就会发生嵌套了. sql server 并不直接支持嵌套事务. 但它可以用一些招式来 ...
- Sql Server学习笔记
1.指定路径创建数据库 create database student on--创建库的时候必须写 ( name=student, filename='E:\database\student.mdf' ...
- 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 ...
- sql server 学习笔记
1. 修改student表中sdept字段改为varchar类型,长度为30,并且不为空 ) not null 2. 删除student表中的address列 alter table student ...
- 【SQL SERVER学习笔记】Sqlserver游标的尝试
DECLARE @ProName NVARCHAR(50)DECLARE @CityName NVARCHAR(50)DECLARE @ProId INT DECLARE @CityId INT DE ...
随机推荐
- number对象,bom对象
number对象 新创建一个number的对象,toFixed是精确到位数 var num =new Number('123.1231'); console.log(num.toFixed(1)); ...
- 二模08day2解题报告
T1.引爆炸弹(bomb) N个炸弹构成一棵树,引爆一颗叶节点,会一直引爆到根节点.每颗炸弹有一个价值,求引爆k个炸弹的最大价值. 既然是一棵树,那么自然想到dp.所以先树形dp了一遍(由于可能出现多 ...
- 互斥对象 Mutex 和MFC中的CMutex
互斥(Mutex)是一种用途非常广泛的内核对象.能够保证多个线程对同一共享资源的互斥访问.同临界区有些类似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共 ...
- postgresql安装配置
一,什么是postgresql PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES 版本 4.2 为基础的对象关系型数据库管理系统(ORDBMS),简称pgsql,它支持大部分 ...
- C# 特性Attributes 和反射
一,Attributes 类新建一个子类,DetailAttributes 二, 在类的属性声明上面加Attributes public class testAttributes { [Detail( ...
- 如果公司里有上百个表要做触发器,如果手动写代码的话。很累,所以今天写了一个小程序,自动生成mysql的触发代码。
<?php $dbname = 'test';//数据库 $tab1 = 'user'; //执行的表 $tab2 = 'user_bak'; //被触发的表 $conn = mysql_con ...
- 添加删除程序无法安装IIS 提示没法加载模块
添加删除程序无法安装IIS 提示没法加载模块 安装iis的时候提示 解决办法:依次是 属性--高级--系统变量--Path 变量值是:%SystemRoot%\system32;%SystemRoo ...
- Vue.js学习 Item12 – 内部响应式原理探究
深入响应式原理 大部分的基础内容我们已经讲到了,现在讲点底层内容.Vue.js 最显著的一个功能是响应系统 —— 模型只是普通对象,修改它则更新视图.这让状态管理非常简单且直观,不过理解它的原理也很重 ...
- windows下 apache 二级域名相关配置
小编今天给大家总结下 windows 下 apache的二级域名的相关配置 利用.htaccess将域名绑定到子目录 下面就利用本地127.0.0.1进行测试 我们这里以 www.jobs.com 为 ...
- Android中的显示单位
px (pixels)像素 一般HVGA代表320x480像素,这个用的比较多. dip或dp (device independent pixels)设备独立像素 这个和设备硬件有关,一般为了支持WV ...