视图(view)
视图
- 视图就是封装了一条复杂查询的语句,创建视图的时候查询的 sql 不能有重复的列名。
- 语法:
CREATE VIEW 视图名称 AS 子查询
- 范例:建立一个视图,此视图包括了20部门的全部员工信息
创建视图的时候,若提示权限不足,需要以管理员身份登录执行 grant connect,resource,dba to scott; 赋予用户 scott 一些权限!
- 视图创建完毕就可以使用视图来查询,查询出来的都是 20 部门的员工。
- 示例图:
- 语法:
CREATE OR REPLACE VIEW 视图名称 AS 子查询
- 如果视图已经存在我们可以使用 语法2 来创建视图,这样已有的视图会被覆盖。
- 示例图:
- 那么视图可以修改吗?
- 我们尝试着修改视图但是发现是视图所查询的表的字段值被修改了,所以我们一般不会去修改视图。
- 示例图:
- 可以设置视图为只读
- 语法:
CREATE OR REPLACE VIEW 视图名称 AS 子查询 WITH READ ONLY
- 示例图:
以上操作完成源码:
--查询20部门的员工
select * from emp t where t.deptno = 20;
--创建部门是20的员工的视图
create view view_d20 as select * from emp t where t.deptno = 20;
--查询视图
select * from view_d20;
--创建视图或者覆盖视图
create or replace view view_d20 as select * from myemp t where t.deptno = 20;
--查询视图
select * from view_d20;
--修改视图, 修改视图其实是修改视图对于的表的数据,视图不建议修改
update view_d20 t set t.ENAME = '史密斯' where t.EMPNO = 7369;
--查询原表数据
select * from myemp;
--创建只读的视图
create or replace view view_d20 as select * from myemp t where t.deptno = 20 with read only;
--查询视图
select * from view_d20;
如有错误,欢迎指正!