一,查询视图
视图定义后,就可以如同查询基本表那样对视图进行查询。
总结:
- 创建视图可以向最终用户隐藏复杂的表连接,简化了用户的SQL程序设计。
- 视图可以通过在创建时指定限制条件和指定列限制用户对基本表的访问,例如:
有表XS(学号、姓名、、专业名性别、出生时间),创建视图CS_XS,并查询视图CS_XS
创建视图CS_XS
Create View CS_XS
As
select * from XS where 专业名=‘计算机’
查询视图CS_XS
select * from CS_XS
Ps:若指定用户只能查询视图CS_XS,实际上就是限制了它只能访问XS表的专业名字段值为‘计算机’的行。
在创建视图时可以指定列,实际上就是限制了用户只能访问这些列,从而视图也可视作数据库的安全设施。
使用视图查询时,若其关联的基本表中添加了新字段,则必须重新创建视图才能查询到新字段。
如果与视图相关联的表或视图被删除,则该视图将不能再使用。
二,更新视图
通过更新视图(包括插入、修改和删除)数据,可以修改基本表数据。
更新视图需满足以下条件:
- 创建视图的select语句中没有聚合函数,且没有TOP,Group by,union子句及Distinct关键字。
- 创建视图的select语句中不包括从基本表列中通过计算所得的列。
- 创建视图的select语句的From子句中至少要包含一个基本表。
- 使用Insert语句通过视图向基本表插入数据。
Ps:当视图所依赖的基本表有多个时,不能向该视图插入数据,因为这将会影响多个基本表。
2. 使用Update语句可以通过视图修改基本表的数据。
例如:将CS_XS视图中所有学生的总学分增加8.
语句如下:Update CS_XS
set 总学分=总学分+8 该语句实际上是将CS_XS视图所依赖的基本表XS中所有专业名为’计算机‘的记录的总学分字段值在原来基础上增加8.
Ps:若一个视图(非分区视图)依赖于多个基本表,则一次修改该视图只能变动一个基本表的数据。
3. 使用Delete语句可以通过视图删除基本表数据。
Ps:对于依赖多个基本表的视图(不包括分期视图),不能使用Delete语句。
可以通过可更新的分区视图删除其所依赖的基本表数据。
三,修改视图定义
使用alter view语句修改视图。语法格式:
Alter View view_name
As select_statement [with check option]
Ps:使用encryption属性定义的视图(即加密存储视图)可以使用alter view语句修改。
四,删除视图
使用Drop View一次可删除多个视图。语法格式:
Drop View view_name
浙公网安备 33010602011771号