欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle视图的使用和创建实例教程

程序员文章站 2022-03-23 20:57:51
1、什么是视图?      ①视图是一种虚表。      ②视图建立在已有表的基础上,视图赖以建立在这些表称为基表。   &nb...

1、什么是视图?

     ①视图是一种虚表。

     ②视图建立在已有表的基础上,视图赖以建立在这些表称为基表。

     ③向视图提供数据内容的语句为select语句,可以将视图理解为存储起来的select语句。

     ④视图没有存储真正的数据,真正的数据还是存储在基表中。

     ⑤程序员虽然操作的是视图,但最终视图还会转成操作基表。

     ⑥视图向用户提供基表数据的另一种表现形式。

     ⑦一个基表可以有0或者多个视图。

2、什么时候用到视图?

     ①让不同用户看到不同的数据,例如,不想让用户看到所有的数据,不想让某些用户看到某些数据时可以使用视图。

     ②需要简化sql语句的编写时。

3、视图的作用:

      ①限制数据的访问;

      ②简化复杂查询;

      ③提供数据的相互独立;

      ④同样的数据,可以有不同的显示方式。

注意:默认情况下,普通用户无权创建视图,需要超级管理员授权。

4、超级管理员向用户授予创建视图权:

     格式:grant create view to 用户名;

5、超级管理员撤销用户的创建视图权:

     格式:revoke create view to 用户名;

6、创建视图:

     格式:create view 视图名

               as

               select对一张或多张表的查询

     例1:基于emp表所有列,创建视图emp_view_1

            create view emp_view_1

            as

            select * from emp;

      例2:基于emp表指定列,创建视图emp_view_2,该视图包含编号、姓名、工资、年薪、年收入

            create view emp_view_2

            as

            select empno "编号",ename "姓名",sal "工资",sal * 12 "年薪",sal * 12 + nvl(comm,0)

            from emp;

7、注意:创建视图时,可以指定视图的列名,若不指定,以查询结果的列名为准:

            例:基于emp表指定列,创建视图emp_view_2(a,b,c,d,e),该视图包含编号、姓名、工资、年薪、年收入

            create view emp_view_2(a,b,c,d,e)

            as

            select empno "编号",ename "姓名",sal "工资",sal * 12 "年薪",sal * 12 + nvl(comm,0)

            from emp;

8、修改表:

     格式:create or replace view 视图名

               as

              子查询

注意:若删除视图中某条记录,会同时影响基表的数据;若删除整个视图,则不会影响基表的数据,同时删除了的视图也不会进           入回收站。

9、将视图设为只读视图:with read only

     例:将emp_view_1设为只读视图

            create or replace view emp_view_1

            as

            select * from emp

            with read only;