Chinaunix首页 | 论坛 | 博客
  • 博客访问: 396488
  • 博文数量: 95
  • 博客积分: 3020
  • 博客等级: 中校
  • 技术积分: 865
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-20 10:40
文章分类

全部博文(95)

文章存档

2011年(3)

2010年(8)

2009年(24)

2008年(60)

我的朋友

分类: 数据库开发技术

2008-09-08 10:34:26

一、视图:是一个数据库对象,它容许用户从一个表或一组表或其它视图建立一个“虚表”,和表不同,视图中没有数据,而仅仅是一条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) |
给主人留下些什么吧!~~