技术栈

主页 > 数据库 >

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

技术栈 - 中国领先的IT技术门户

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;

责任编辑:admin  二维码分享:
本文标签: 视图viewempcreateselect基表