一、视图:是一个数据库对象,它容许用户从一个表或一组表或其它视图建立一个“虚表”,和表不同,视图中没有数据,而仅仅是一条SQ查询语句。可以和数据库表一样,可以在视图上执行受限制insert,update,delete,
select数据操作。
视图的重要性:
1、视图可以提供附加的安全层。
2、视图可以隐藏数据的复杂性。
3、视图可以简单化命名。
4、视图带来更大的灵活性。
5、视图可以让不同的用户去关心自己感兴趣的数据。和某些特定的数据以完成特定的任务,而与任务无关的,不需要的数据就可以不在视图中显示。
1.1 创建视图
create view stuview1
as
select stuID,stuname,credit from student ------创建一个名为stuview1的视图,该使用视图的用户将只能看到3列,而无法看到没有得到授权的其它数据。
1.2 创建多表连接的视图
create view stuscoreview
as
select s.stuid, s.stuname, c.couname,sc.score
from student as s, student_course as sc, course as c
where s.stuid=sc.stuid and sc.couid=c.couid ------创建一个名为stuscoreview的视图,该视频综合了student表和course表,只能看到4列。
1.3 在创建视图时,源表可以是基本表,也可以是另一视图。
create view avgscoreview(stuid,stuname,avgscore)
as
select stuname,avg(score),stuid from stuscoreview
group by stuid,stuname ------创建一个名为avgscoreview的视图(使用的源表为另一个视图),显示stunmae,avgscore,stuid这三个列的数据。
二、视图命令语句:
更新数据时,需要注意以下几点:
1、修改视图中的数据时,不能同时修改两个或者多个基表,可以对基于两个或多个基表或者视图的视图进行修改,但是每次修改只能影响一个基表。
2、不能修改那些通过计算得到的字段,例如包含计算值或者了聚合函数的字段。
3、如果在创建视图时指定了with check option选项,那么使用视图修改数据库信息时,必须保证修改后的数据满足视图定义的范围。
4、执行update,delete命令时,所删除与更新的数据必须包含在视图的结果集中。
5、如果视图引用多个表时,无法用delete命令删除数据,若使用update命令则应与insert操作一样,被更新的列必须属于同一个表。
update stuview1 set credit=credit+5 where stuname='小王' ------对stuview1视图的stunameo为小王的credit字段进行加5操作.
3、使用视图删除数据:使用delete语句可以通过视图删除基本表的数据。但要注意,对于依赖于多个基本表的视图,不能使用delete语句。
delete from stuview1 where stuname='小王'
4、使用视图插入数据
insert into dbo.stuview1 values('071003','小明',52)
阅读(970) | 评论(0) | 转发(0) |