首页 理论教育 SQLServer数据库基础教程:使用视图操作

SQLServer数据库基础教程:使用视图操作

时间:2023-10-21 理论教育 版权反馈
【摘要】:前面章节介绍的表的查询操作一般都可以用于视图。DBMS执行对视图的查询时,首先检查查询所涉及的表、视图等是否在数据库中存在。由于视图是实际存储的虚表,因此对视图的更新最终要转换为对基本表的更新。因此,在UPDATE或INSERT语句中的列必须属于视图定义中的同一个基本表。使用视图删除数据 删除view1视图中姓名为“马奇”的同学,其代码如下。

SQLServer数据库基础教程:使用视图操作

1.利用视图查询

视图定义后,用户就可以对视图进行查询。前面章节介绍的表的查询操作一般都可以用于视图。

DBMS执行对视图的查询时,首先检查查询所涉及的表、视图等是否在数据库中存在。如果存在,则从数据字典中取出查询涉及的视图的定义,把定义中的子查询和用户对视图的查询结合起来,转换成对基本表的查询,然后再执行这个经过修改的查询。

【例5-6】 在视图vw_stu1中查找男同学,代码如下。

2.使用视图修改数据

可使用视图进行插入(INSERT)、删除(DELETE)和更新(UPDATE)等操作。

由于视图是实际存储的虚表,因此对视图的更新最终要转换为对基本表的更新。

为防止用户通过视图对数据进行修改、无意或故意操作不属于视图范围内的基本数据,可在定义视图时加上WITH CHECK OPTION语句,这样在视图上修改数据时,DBMS会进一步检查视图定义中的条件,若不满足条件,则拒绝执行该操作。

修改数据的准则如下。

●SQL Server必须能够明确地解析对视图所引用基表中的特定行所做的修改操作。不能在一个语句中对多个基本表使用数据修改语句。因此,在UPDATE或INSERT语句中的列必须属于视图定义中的同一个基本表。

●对于基本表中需更新而又不允许空值的所有列,它们的值在INSERT语句或DEFAULT定义中指定,这将确保基表中所有需要值的列都可以获取值。(www.xing528.com)

●在基表的列中修改的数据必须符合对这些列的约束,如为空值、约束、DEFAULT定义等。

(1)使用视图更新数据

【例5-7】 将view1视图中学号为“0910101”的学生的姓名改为“张三”,其代码如下。

更新视图的同时,也更新了基本表。

(2)使用视图插入数据

【例5-8】 将view1视图中插入一名学生,其代码如下。

插入视图的同时,也插入到了基本表。

(3)使用视图删除数据

【例5-9】 删除view1视图中姓名为“马奇”的同学,其代码如下。

在视图及基本表中都删除了“马奇”这个同学。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈