1 视图(虚拟的表)
视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。
把子查询的结果集单独定义成视图,用来重用子查询,提高语句的复用性。视图在sql语句中体现的角色与表相同,但是视图并不是一张真是存在的表,而是对应一个select语句的查询结果集,并且当做表看待。
子查询与视图区别:
子查询在表中用()包括,视图中直接使用。
使用视图的目的:
1.为了简化SQL语句的复杂度
2.重用子查询(类似于方法的封装)
3.限制数据访问(对外提供视图,不提供表)
给与创建视图的权限
在创建视图之前先分配权限,使用sys账户登录数据库,输入sql语句:
GRANT CREATE VIEW TO XX
视图是数据库对象之一,所有数据库对象的名字不能够重复,所以视图名字一般以“v_”开头。
–创建视图
CREATE VIEW 视图名字 AS SELECT语句
--查询十号部门的员工信息,只看工号,名字和薪水
CREATE VIEW v_emp_dept10 AS SELECT empno,ename,sal,deptno FROM emp WHERE deptno =10;
--查看视图
SELECT * FROM v_emp_dept10;
--修改视图
CREATE OR REPLACE VIEW v_emp_dept10 AS SELECT empno id,ename name,sal salary,deptno FROM emp WHERE deptno=10;
由于视图只是对应一条sql、语句,修改视图其实就是替换该select语句。修改视图,如果视图已经存在,那么替换sql语句,如果不存在,则是创建。
视图对应的子查询中字段如果含有函数或者表达式,那么该字段必须指定别名。
当视图对应的子查询中的字段使用了别名,那么视图中该字段就用别名来命名。
视图分类:简单视图和复杂视图
简单视图