SQL Server中的集合查询、数据更新、空值处理与视图

本文详细介绍了SQL Server中集合查询,包括UNION、INTERSECT和EXCEPT操作;数据更新,如INSERT、UPDATE和DELETE;空值处理,包括空值的产生、判断和运算;以及视图的概念、创建与更新,强调视图在数据抽象和安全性上的作用。
摘要由CSDN通过智能技术生成

集合查询

SELECT语句的查询结果是元组的集合,所以多个SELECT语句的结果可进行集合操作。集合操作主要包括并操作UNION、交操作INTERSECT和差操作EXCEPT。(注意参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同。)

查询计算机系的学生及年龄不大于19岁的学生:

select*
from Student
WHERE Sdept='CS'
UNION
SELECT*
FROM Student
WHERE Sage<=19;

在这里插入图片描述

使用UNION将多个查询结果合并起来时,系统会自动去掉重复元组。如果要保留重复元组则用UNION ALL操作符。

查询计算机系的学生与年龄不大于19岁的学生的交集:

select*
from Student
WHERE Sdept='CS'
INTERSECT
SELECT*
FROM Student
WHERE Sage<=19; 

在这里插入图片描述
插入的数据中无满足条件的信息。

该查询也可以用连接查询来完成:

select*
from Student
WHERE Sdept='CS'AND Sage<=19;

查询既选修了课程1有选修了课程2的学生(即查询选修了课程1的学生和选修课程2的学生的交集):

select Sno
FROM SC
WHERE Cno='1'
INTERSECT
SELECT Sno
FROM SC
WHERE Cno='1';

在这里插入图片描述

该查询也可以使用嵌套查询来实现:
select Sno
FROM SC
WHERE Cno='1'AND Sno IN
				(SELECT Sno
				 FROM SC
				 WHERE Cno='2');


查询计算机系的学生与年龄不大于19岁的学生的差集:

select*
from Student
WHERE
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值