SQL server中: 视图的操作

视图

视图的作用

  1. 简化用户的操作
  2. 使用户能以多种角度看待同一数据
  3. 对重构数据库提供了一定程度的逻辑独立性
  4. 对机密数据提供安全保护
  5. 适当利用视图可以更清晰地表达查询

视图的特点

  1. 虚表,从一个或几个基本表(或视图)导出的表

  2. 只存放视图的定义,不存放视图对应的数据

  3. 基本表数据改变, 视图中数据也会变化
    例如:

    更新平均成绩,更新不了,不会影响原表数据

行列子集视图

视图是由单个d额基本表导出,并且去掉某些行和列,但保留了主码的视图

例如:

create view is_student
as
select sno,sname
from student
where sdept='IS'
with check option; 
/*
with check option ,对where 条件子句检查, 如果更新或插入的数据不符合视图定义中的约束条件,则会出现错误提示。
在 DELETE 命令时,WITH CHECK OPTION 对其不起作用。
*/

分组视图

视图查询中,带有group by

建立视图

作用:方便老爷爷老奶奶使用

create view nihao1 (sno,sname,grade ) --视图名 (列名)

as
select *
from sc
where sno=1 --子查询

with check option
限定as 子查询条件

基于视图的视图
create view nihao2 (sno,sname,grade ) --视图名 (列名)

as
select *
from nihao1

where sno=1 --子查询

with check option
限定as 子查询条件

删除视图 / 删除视图数据

删除视图:

drop 
view  nihao  cascade   -- cascade   级联

删除视图中记录:
通过V_计算机系学生”视图,删除姓名为“白晓云”的记录

DELETE 
FROM V_计算机系学生 
WHERE  sname='白晓云'

查询视图(insert/ update/ delete, select )

select

类似查询基本表

update

更新视图 不一定更新 基本表

更新基本表 一定更新视图
更新视图的条件:

	视图必须只引用单个基本表(这意味着视图不能跨多个表)。
	视图中的字段必须来自基本表的列,而不是计算字段或表达式。
	视图必须包含基本表的主键(或至少是唯一键),以便可以准确定位要更新的行。
	视图不能包含以下类型的操作:GROUP BY、DISTINCT、UNION、子查询、聚合函数等。
	视图中不能包含 WITH CHECK OPTION 子句,该子句会限制对视图的更新。

更新视图的列的条件:

1. 视图必须只包含来自单个基本表的列。(如视图V_计算机系学生来自于student表,一个单表)  如果视图包含来自多个表的列,那么通常不能直接对视图进行更新。
2. 视图中的列必须是直接从基本表中选择的列(如修改视图V_计算机系学生,其中列来自于student基本表中的sname列),而不是通过计算、聚合或其他方式得出的结果。
3. 视图的基本表必须具有主键(student 表中有sno学号主键)
4. 视图的基本表必须是可更新的,这意味着它不能是临时表、全局临时表、表变量、联合查询的结果、包含计算列的表等。
5. 视图中的列不能使用聚合函数(如 SUM、COUNT)或 DISTINCT 关键字

待续、更新中

 
 
—————————————————————
以上就是今日博客的全部内容了
创作不易,若对您有帮助,可否点赞、关注一二呢,感谢支持.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟道子HD

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值