数据库--集合查询

四、集合查询

union并 intersect交 except差

--5、查询只选修了“信息系统”和“数学”这两门课程的学生的基本信息;

select sno
from course a,sc b
where a.cno=b.cno 
group by b.sno
having count(*)=2
intersect
select sno
from course a,sc b
where a.cno=b.cno and cname='信息系统' 
intersect
select sno
from course a,sc b
where a.cno=b.cno and cname='数学' 

五、数据更新 

插入数据:insert into student(Sno,sname) values(‘200101’,‘白雪公主’) 

更新修改:updata student set sage=18 where~

删除 :delete from student

视图:不实际存储的虚表 

创建视图(加上了with check option子句,之后的修改操作都会自动加上sdept=‘IS’条件,防止用户有意无意地对不属于视图范围内的基本表数据进行操作)

create view CS_view
as
select sno,sname,ssex,sage,sdept
from student
where sdept='CS'
with check option

删除视图:drop view

删除、更新视图信息:同上数据删除、更新

视图更新:一般而言行列子集视图是可更新的

1. 若视图是由两个以上基本表导出的,则此视图不允许更新。

2. 若视图的字段来自字段表达式或常数,则不允许对此视图执行INSERT和UPDATE操作,但允许执行DELETE操作。

3. 若视图的字段来自聚集函数,则此视图不允许更新。

4. 若视图定义中含有GROUP BY子句,则此视图不允许更新。

5. 若视图定义中含有DISTINCT短语,则此视图不允许更新。

6. 若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。例如将成绩在平均成绩之上的元组定义成一个视图GOOD_SC: CREATE VIEW GOOD_SC

AS SELECT Sno, Cno, Grade

FROM SC WHERE Grade> (SELECT AVG(Grade) FROM SC);   

导出视图GOOD_SC的基本表是SC,内层查询中涉及的表也是SC,所以视图GOOD_SC是不允许更新的。

7. 一个不允许更新的视图上定义的视图也不允许更新。

视图的作用:

1、简化用户操作

2、满足用户需求 

3、一定的逻辑独立性

4、提供数据安全保护

5、更清晰地表达视图(避免冗余)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值