数据库视图

视图是从一个或多个表(或视图)导出的表,例如,对于一个学校,其学生的状况存于数据库的一个或多个学生表中,而做为学校的不一样职能部门,所关心的学生数据的内容不一样(如体育老师只能查看或添加体育课的分数)。及时是一样的数据,有可能有不一样的操做要求,因而就能够根据他们的不一样需求,在物理的数据库上定义他们对数据库所要求的数据结构,这种根据用户观点所定义的数据结构就是视图数据库

通常咱们称表为基表,视图是一个虚表安全

视图一经定义,就能够像表同样被查询,修改,删除和更新数据结构

 

视图的优势:函数

1.为用户集中数据,简化用户的数据查询和处理。有时,用户所须要的数据分散在多个表中,定义视图能够将他们集中在一块儿,从而方便用户的数据查询和处理spa

2.屏蔽数据库的复杂性。用户没必要了解复杂的数据库中的表结构,并数据库表的更改也不影响用户对数据库的使用。3d

3.简化用户权限的管理。只需授予用户使用视图的权限,而没必要指定用户只能使用表的特定列,同时也增长了安全性。blog

4.便于数据共享。各个用户对于本身所需的数据没必要都进行定义和存储,可共享数据库的数据,这样一样的数据只需存储一次it

5.能够从新组织数据,以便输出到其余应用程序中。io

 

建立视图:select

界面建立视图:在SQL Developer中建立视图

 

 

 

 

命令建立视图

 

语法格式:create [or replace] [force | noforce]  [<用户名方案名>.]  视图名称

                  [<列名...>]

                 as

                 <selcet 查询语句>

               [with check option[constraint<约束名>]]

 

               [with read only]  

 

                   

说明:

1.or replace:表示在建立视图时,若是已经存在同名的视图,则要从新建立,否则把已存在的视图删除后才能建立

2.force:表示强制建立一个视图,不管视图的基表是否存在或拥有者是否有权限,但建立视图的语句必须是正确的。noforce则相反

3.用户名:指定将建立的视图所属用户方案,默认为当前登入帐号

4.列名:能够定义视图中包含的列,若使用与源表或视图中相同的列名是,则必给出列名

5.select查询语句:查询锁哥表或视图,以代表新建立的视图所参照的表或视图

6.with check option:指定限制条件

7.constraint:约束名称

8.with read only:规定视图不能执行删除,插入,更改操做,只能检索数据

 

 

 

 

更新视图

要经过视图更新基表数据,必须保证视图是可更新视图。一个可更新视图知足如下条件:

(1) 没有使用链接函数、集合运算函数和组函数;

(2) 建立视图的SELECT语句中没有聚合函数且没有GROUP BY、ONNECT BY、START WITH子句及DISTINCT关键字;

(3) 建立视图的SELECT语句中不包含从基表列经过计算所得的列;

(4) 建立视图没有包含只读属性。

 插入数据

使用INSERT语句经过视图向基本表插入数据

修改数据

使用UPDATE语句能够经过视图修改基本表的数据。

删除数据

使用DELETE语句能够经过视图删除基本表的数据。

 

在界面上视图也能够进行更新,删除,插入和修改

 

相关文章
相关标签/搜索