一、视图(数据库对象)
把常用的复杂的sql定义为视图,需要查看数据时直接查看视图即可。
视图:虚表,是一个命令的查询,用于改变基表的数据的显示,简化查询;访问方式与表相同,同样可使用查询语句。
视图与表的关系是平等的,都是数据库的对象,视图的数据来源于表,视图本身,没有数据。
二、视图特点
简化查询(把复杂的SQL语句写成视图,别人直接用视图来查询即可,无须再写复杂的SQL语句)
隐藏数据(不是把整张表的数据给别人,而是通过指定字段弄成视图,把视图给别人,让别人查视图)
三、视图操作步骤
(一)赋予创建视图的权限
grant create view to 用户名;(管理员执行)
grant create view to scott;
(二)创建视图
create [or replace:替换] [force:强制] 视图名
as
...select语句...
--创建视图
CREATE VIEW show_cons_view
AS
--用于查询表名,字段名,约束名,约束类型‘如果是外键需要找出所引用的表,字段,约束名,约束类型
SELECT UCC.TABLE_NAME,
UCC.COLUMN_NAME,
UCC.CONSTRAINT_NAME,
UC.STATUS,
UC.CONSTRAINT_TYPE,
UC.R_CONSTRAINT_NAME,
UCC2.TABLE_NAME R_TABLE_NAME,
UCC2.COLUMN_NAME R_COLUMN
FROM USER_CONS_COLUMNS UCC
LEFT JOIN USER_CONSTRAINTS UC
ON UCC.CONSTRAINT_NAME = UC.CONSTRAINT_NAME
LEFT JOIN USER_CONS_COLUMNS UCC2
ON UC.R_CONSTRAINT_NAME = UCC2.CONSTRAINT_NAME;
(三)查看视图
select * from 视图名;
SELECT * FROM SHOW_CONS_VIEW;
四、修改视图
用CREATE OR REPLACE VIEW
子句修改视图,修改视图其实就是把创建视图的语句重新写一遍,再写的时候增加需要修改的内容即可。
五、视图上执行DML操作
简单视图能进行DML(增删改)操作,实质就是通过视图对表的数据进行操作,视图实质没有数据。
删除和更新视图的值都是对视图展现的数据进行操作,而增加视图的数据直接插入到表中,对视图的展现数据没有影响,但是增加的数据必须符合表的规则。
1、删除视图数据
delete from 视图名;
2、修改视图数据
update 视图名 set 列名=新值;
3、增加视图数据
insert into 视图名 values (值…)