集合查询、数据更新

这篇博客详细介绍了SQL中的集合查询,包括交集、并集、差集的使用,以及如何通过派生表进行数据操作。同时,讨论了数据更新的相关内容,如INSERT、UPDATE、DELETE操作,并给出了具体的例子。此外,还讲解了视图的创建、使用和管理,包括视图的更新限制及其在数据管理中的应用。
摘要由CSDN通过智能技术生成

文章目录

集合查询

select返回的是一个集合,交 并 差 union intersect except

例3.64 查询计算机科学系的学生及年龄不大于19岁的学生。

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

在这里插入图片描述

例3.65 查询选修了课程1或者选修了课程2的学生。

SELECT Sno
FROM SC
WHERE Cno='1'
UNION SELECT Sno
FROM SC
WHERE Cno='2';

在这里插入图片描述

例3.66 查询计算机科学系的学生与年龄不大于19岁的学生 的交集。

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

SELECT *
FROM Student
WHERE Sdept='CS' AND
Sage<=19;

在这里插入图片描述

例3.67 查询既选修了课程1又选修了课程2的学生。

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

SELECT Sno
FROM SC
WHERE Cno='1' AND Sno IN
(SELECT Sno
FROM SC
WHERE Cno='2');

在这里插入图片描述

例3.68 查询计算机科学系的学生与年龄不大于19岁的学生的差集。

SELECT *
FROM Student
WHERE Sdept='CS'
EXCEPT SELECT *
FROM Student
WHERE Sage<=19;

SELECT *
FROM Student
WHERE Sdept='CS' AND Sage>19;

在这里插入图片描述

派生表

子查询不仅可以在WHERE子句中,在FROM里也可以,这个时候叫做 临时派生表。

数据更新

INSERT插入 UPDATE修改数据 DELETE删除

INSERT 
INTO <表名>  [(<属性列1> [,<属性列2>…  )]
子查询;

UPDATE  <表名>
SET  <列名>=<表达式>[,<列名>=<表达式>]… 
[WHERE <条件>];

DELETE FROM     <表名> 
[WHERE <条件>];

例3.72 对每一个系,求学生的平均年龄,并把结果存入数据库

CREATE TABLE Dept_age
(Sdept CHAR(15),
Avg_age SMALLINT);
INSERT INTO
Dept_age(Sdept,Avg_age)
SELECT Sdept,AVG(Sage)
FROM Student
GROUP BY Sdept;

在这里插入图片描述

例3.73 将学生201215121的年龄改为22岁

例3.74 将所有学生的年龄增加1岁

UPDATE Student
SET Sage=22
WHERE Sno='201215121';

UPDATE Student
SET Sage=Sage+1;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值