Tutorial de Oracle: vista simple, vista con restricciones de verificación, vista de solo lectura, vista con errores, vista con asociación de múltiples tablas, vista con estadísticas agregadas

¿Qué es la vista?

1、 要点:对sql语句的一种封装,它是一个虚拟的表。
2、 使用场景:对经常需要查询的数据,进行封装。
3、 优点:提高工作效率。     

crear modificar eliminar ver sintaxis

Gist: sintaxis básica para crear vistas y eliminar vistas.

1. Crea una vista

CREATE [OR REPLACE] [FORCE] VIEW view_name
AS subquery	
[WITH CHECK OPTION ]
[WITH READ ONLY]
REPLACE:删除已有视图,重新创建视图。
FORCE:不管基表是否存在,都会创建视图。
WITH CHECK OPTION:插入或修改的数据行必须满足视图定义的约束。
WITH READ ONLY:只读。

2. Eliminar la vista:

DROP VIEW view_name

Ver caso - Vista simple

Puntos clave: la tabla consultada en la vista se denomina tabla base y modificar la vista en realidad es modificar los datos en la tabla base. Una vista es en realidad una declaración SQL en la base de datos, y consultar los datos de la vista es en realidad consultar los datos de la tabla base.

1--需求:创建视图 :业主类型为 1 的业主信息
create view view_owners1 as
select * from t_owners where ownertypeid = 1;

2--查询简单视图
select * from view_owners1 where addressid = 1;

3--修改视图数据
update view_owners1 set name='范小冰' where id=1;
commit;

4--查询表
select * from t_owners where ownertypeid = 1;

Ver casos: vistas que verifican restricciones

Puntos clave: la opción con opción de verificación se agrega a la vista y los campos de condición de la tabla base en la vista no se pueden modificar.

1--带检查约束的视图
--需求:根据地址表(T_ADDRESS)创建视图 VIEW_ADDRESS2 ,内容为区域 ID为 2 的记录。
create view view_address2 as
select * from t_address where areaid=2
with check option

2--无法修改成功的语句,因为该视图的条件是areaid=2
update view_address2 set areaid=3 where id=4;

3--可以修改成功的语句,因为条件不是areaid
update view_address2 set name='河畔花园1' where id=4;
commit;

Ver caso: vista de solo lectura

Puntos clave: agregar o reemplazar en la vista para eliminar la vista original, recrear la vista, agregar con vista de solo lectura solo se puede ver pero no modificar.

1--需求:将上边的视图修改为只读视图
create or replace view view_owners1 as
select * from t_owners where ownertypeid=1
with read only

2--修改只读视图数据
update view_owners1 set name='aaa' where id=1;

Ver caso - Ver con errores

Importante: Agregar la opción forzar a la vista puede crear tablas que no existen en la base de datos.

--创建带错误的视图
create force view view_test as
select * from t_test

Ver caso: vista asociada a varias tablas

Puntos clave:
Vista compleja: en la declaración SQL de la vista, hay funciones agregadas o consultas asociadas de varias tablas.
Tabla de reserva de claves: la tabla que conserva la clave principal.

1--创建视图,查询显示业主编号,业主名称,业主类型名称
create or replace view view_owners as 
select ow.id 业主编号,ow.name 业主名称,ot.name 业主类型 from t_owners ow,t_ownertype ot
where ow.ownertypeid=ot.id

2--查询复杂视图(多表关联)
select * from view_owners where 业主类型='居民';

3--修改键保留表复杂视图(多表关联)的数据
update view_owners set 业主名称='林玲玲' where 业主编号=4;
commit;

4--修改非键保留表复杂视图(多表关联)的数据
update view_owners set 业主类型='商业' where 业主编号=4;
--键保留表:把主键保留下来的那个表

Ver caso: vista de estadísticas agregadas

Importante: Las vistas estadísticas agregadas son de solo lectura de forma predeterminada y los datos no se pueden modificar.

1--需求:创建视图,按年月统计水费金额
create view view_accountsum as
select year,month,sum(money) money
from t_account 
group by year,month 
order by year,month

2--查询视图
select * from view_accountsum where year='2012' and month='03'

3--不能修改
update view_accountsum set money=10000 where year='2012' and month='03'

Supongo que te gusta

Origin blog.csdn.net/a772304419/article/details/132480315
Recomendado
Clasificación