首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

4、视图

2012-09-06 
四、视图视图创建视图create view v as select * from emp--v为视图名,as为必须查询视图select * from v通

四、视图

视图

创建视图

create view v as select * from emp
--v为视图名,as为必须

查询视图

select * from v

通过视图V向基表emp录入数据
insert into v values(2005,'mikel',1003)

通过视图向基表更新数据

update v set ename='helen' where eid=2005

通过视图删除基表的数据

delete from v where eid=2005

--drop view v

视图不包含主键列

create view v as select ename,did from emp

select * from v
--可以查询,可以删除,可以更新,不可以插入

/*当所创建的视图不包含基表所有非空列的时候,不能通过该视图进行数据录入*/

?

?

多表视图

重定义视图

alter view v


as select did from emp

create view v as select eid,ename,emp.did as edid,dept.did as did,dname
from emp,dept where emp.did=dept.did
--创建多表连接的时候,视图中的列名必须唯一
--如果没有where子句,则结果为两表的笛卡儿积

视图包含所有的列

delete from v
--不可删除数据,因为修改会影响多个基表

insert into v values(11,'aa',1001,1008)
--不能录入数据,因为修改会影响到多个基表

update v set ename='ee',dname='cc'
--更新,影响到一个基表时可以,多个基表则不允许

视图不包含基表的所有非空列

--可以查询,不可删除,插入,
--更新同上

where条件
alter view v as select * from dept where did>1003
--定义视图时指定的where条件对查询起作用

delete from v where did=1001
--对删除起作用

update v set dname='aa' where did=1001
--对更新起作用

insert into v values(1001,'dd')
--对插入不起作用,但是查询不到

热点排行