视图一般是一个表或多个表的查询或子查询,这样可以减少代码量,但同时增加了对数据库视图的维护程度。
如:某个表字段被删除或是修改,视图也要重新创建或修改,同时占用了数据库的一部分空间;视图就是一个虚拟的表格
--语法 CREATE [OR REPLACE] VIEW 视图名称 AS 子查询;
--创建一张视图 CREATE VIEW myview AS SELECT d.deptno,d.dname,d.loc,COUNT(e.empno) count,AVG(e.sal) avg FROM emp e,dept d WHERE e.deptno(+)=d.deptno GROUP BY d.deptno,d.dname,d.loc;
--现在已经创建好了一张视图,名称为myview,所以现在查询myview SELECT * FROM myview;
此时通过一个简单的视图查询操作,就可以完成之前的复杂SQL语句的功能,所以视图就是包装了SQL查询操作。
--创建一张包含简单查询语句的视图 CREATE OR REPLACE VIEW myview AS SELECT * FROM emp WHERE deptno=20;
此时表示的是,如果视图存在则替换,不存在则创建一张新的视图,视图的概念虽然好理解,但是在创建视图的时候存在两个选项。
索引的主要功能就是用于提升数据库的操作性能