sql >> Base de Datos >  >> RDS >> Oracle

Cómo crear una vista en Oracle

En esta publicación, estaría hablando de las vistas de Oracle que se usan bastante en varias aplicaciones por razones de seguridad y complejidad. modificar la vista en Oracle, cómo compilar la vista en Oracle, cómo eliminar la vista en Oracle, forzar la vista en Oracle, cómo verificar la definición de la vista en Oracle. Llegará a saber por qué Oracle View es importante y qué se puede hacer con ella. .

Este mismo material es casi válido para la vista sql también

¿Qué es la vista de Oracle?

-Una vista de Oracle es una representación de datos de una o más tablas o vistas de Oracle.

-Una vista de Oracle es una consulta SQL con nombre y validada que se almacena en el diccionario de datos de Oracle.

Las vistas no contienen ningún dato, es solo una consulta almacenada en la base de datos que se puede ejecutar cuando se llama. Todos los datos que muestra provienen de las tablas base. Se puede pensar en una vista como una tabla virtual o un mapeo de datos de uno o más

-Una vista no ocupa espacio de almacenamiento aparte de la definición de la vista en el diccionario de datos.

  • Se puede usar una vista para representar un subconjunto de datos (por cuestiones de seguridad), para representar un superconjunto de datos (unir varias tablas a una vista), para ocultar uniones complejas, para proporcionar nombres significativos para las columnas y para minimizar los cambios en la aplicación y la fuente de datos.

-Las tablas referenciadas se denominan tablas base .

  • Para crear una vista, utilice el comando CREAR VISTA seguido de una consulta SQL.

Ejemplo de vista de creación de Oracle

CREATE VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];

-Puedes especificar los nombres de las columnas usando

 CREATE VIEW (col1, col2…) AS SELECT COL1, COL2… FROM …;

-Crear una vista usando CREATE FORCE VIEW creará la vista con errores de compilación.

-Puedes crear una vista de solo lectura usando la cláusula WITH READ ONLY.

-Oracle 9i permite crear restricciones en las vistas.

-Las restricciones en las vistas no se aplican, son restricciones declarativas. Para hacer cumplir las restricciones, debe crear las restricciones en las tablas base. Siempre debe incluir la cláusula DISABLE NOVALIDATE al crear restricciones en las vistas.

Privilegios necesarios para crear una vista de Oracle

Para crear una vista en su propio esquema, debe tener el privilegio del sistema CREAR VISTA. Para crear una vista en el esquema de otro usuario, debe tener el privilegio del sistema CREAR CUALQUIER VISTA.

Ejemplo de creación de Oracle Views

View Creation
Create view emp_data  as select e.empno,e.ename,e.sal,e.deptno,d.dname
From emp e, dept d
where e.deptno=d.deptno;

Create view emp_high_sal  as select empno,ename,sal
From emp  where sal > 100000;
Describe the views
Desc Emp_data
Desc emp_high_sal
Select the data from view
Select * from emp_data;
select * from emp_high_sal

Cómo modificar la vista de Oracle/cómo modificar la vista en Oracle

Podemos modificar las vistas usando el comando crear o reemplazar vista. Esto permite modificar la vista sin descartar, recrear y volver a otorgar privilegios de objetos. No existe un comando como alterar vista agregar una columna o alterar vista modificar la columna. Necesitamos pasar por el método de crear o reemplazar vista

Create or replace view emp_high_sal  as select empno,ename,sal
From emp  where sal > 200000;

Este comando crea la vista si no existe y modifica la vista si existe. Todas las unidades plsql que acceden a la vista dejarán de ser válidas después de la modificación de la vista

Cómo compilar una vista en Oracle

La recompilación de una vista se realiza mediante el

ALTER VIEW COMPILAR;

Alter view  emp_high_sal  compile;

Cómo soltar la vista en Oracle

La eliminación de una vista se realiza con el comando DROP VIEW.

Descartar una vista no tiene ningún efecto en las tablas base en las que se basa la vista. Los usuarios que accedían a los datos de las tablas base mediante view ya no podrán acceder a los datos de las tablas base.

DROP VIEW view_name;

Drop view  emp_high_sal  ;

Creando Force Oracle Views/Forzar vista en Oracle

Se puede crear una vista incluso si la consulta de definición de la vista no se puede ejecutar, utilizando el comando CREATE FORCE VIEW. Esta vista se denomina vista con errores. . Esta opción puede ser útil para que las herramientas de importación/instalación creen una vista antes de que los objetos subyacentes estén presentes.

Pongamos un ejemplo para entenderlo. No tenemos una tabla como TEST. Pero aún podemos crear la vista en él antes de crear la tabla usando la opción de fuerza. La vista se creará con un error de compilación y seguirá siendo inválida

Create  force view TEST_V  as select col1,col2,col3 From test where col1 > 1000;

Ahora crea la tabla

create table TEST ( col1 number, col2 number, col3 number);

Ahora puede compilar la vista y se volverá válida

alter view TEST_V compile;

¿Qué sucede con la vista si se eliminan las tablas base?

Si se descartan las tablas subyacentes, Oracle no elimina la vista automáticamente. Permanece en la base de datos y estará en un estado no válido. Si se vuelven a crear las tablas subyacentes, volverán a ser válidas

Vistas de diccionario para ver los datos de Oracle View

Los detalles de la vista se pueden consultar desde el diccionario consultando USER_VIEWS, ALL_VIEWS o DBA_VIEWS. Las vistas son útiles para la seguridad y la ocultación de información, pero pueden causar problemas si se anidan demasiado. Algunas de las ventajas de usar vistas:

  • Reducir la complejidad de las sentencias SQL
  • Comparta solo filas específicas en una tabla con otros usuarios
  • Ocultar el NOMBRE y el PROPIETARIO de la tabla base
  • Hay tres categorías de vistas
USUARIO_% Esta vista contiene información sobre los objetos propiedad del usuario únicamente Por ejemplo
USER_TABLES,USER_TAB_COLS
TODO-% Esta vista contiene información sobre los objetos a los que el usuario puede acceder en la base de datos.
Ejemplo
ALL_TABLES,ALL_TAB_COLS
DBA_% Esta vista contiene información sobre todos los objetos   en el sistema y estas son vistas restringidas a las que puede acceder el usuario que tiene un rol de DBA
Ejemplo
DBA_TABLES
  DBA_% vistas sobre ver información ALL_% vistas sobre  ver información USER_% visualizaciones sobre ver información
La columna que se puede actualizar DBA_UPDATABLE_COLUMNS TODAS LAS_COLUMNAS_ACTUALIZADAS USER_UPDATABLE_COLUMNS
Ver sobre ver información dba_views todas_las_vistas vistas_de_usuario

Lista de todas las vistas en Oracle

To list all views owned by the current user
select  view_name from user_views;

To list all views in a database:

Select  owner,view_name from dba_views;

To list views accessible to the current user:

select view_name from all_views;

To describe the view in sqlplus
desc <view_name>

Cómo verificar la definición de vista en Oracle

Consulta la columna TEXTO de la tabla DBA_VIEWS.

Syntax:
SQL> set long 10000

SQL> select TEXT
2  FROM DBA_VIEWS
3  where OWNER = '<owner_name>'
4  and VIEW_NAME  = '<view_name>';

Cómo extraer la definición de vista (sentencias DDL) de una base de datos Oracle sin tener que pasar por una pila de vistas de diccionario

Syntax:
SQL> set long 1000
SQL> set pagesize 0
SQL>select DBMS_METADATA.GET_DDL('VIEW','<view_name>') from DUAL

Espero que les guste un artículo detallado sobre la vista de Oracle. He intentado responder a las consultas populares sobre la vista, como Cómo crear una vista en Oracle, Ejemplo de creación de vista de Oracle, Cómo modificar la vista en Oracle, Cómo compilar la vista en Oracle, Cómo eliminar la vista en Oracle, Forzar la vista en Oracle , Cómo verificar la definición de vista en Oracle

Artículos relacionados para leer
Oracle crear una tabla:Las tablas son la unidad básica de almacenamiento de datos en una base de datos Oracle. Cubrimos cómo usar el comando de creación de tabla de Oracle para crear una tabla con una clave externa/clave principal
tablas externas en Oracle:consulte esta publicación para obtener información sobre el uso de la tabla externa en Oracle con un ejemplo, cómo crear una tabla externa, cómo usarla
Secuencias en Oracle:qué es Secuencia en Oracle, descripción de todas las opciones, cómo crearlas, nueva función de secuencias de Oracle 12c, cómo eliminarlas y modificarlas
Índices en Oracle:consulte la información de los índices de Oracle, los diferentes tipos de índices en Oracle con un ejemplo, cómo crear/eliminar/alterar el índice en Oracle
Vistas materializadas de Oracle:qué es la vista materializada de Oracle, registro de vistas materializadas de Oracle, Actualizar grupo, diferencia entre vista y vista materializada
Cómo monitorear el progreso de la actualización de vistas materializadas
Oracle alter table modificar tipo de columna:consulte esta publicación sobre cómo modificar columnas en oracle usando oracle alter table modificar la columna. La columna de modificación puede cambiar el valor predeterminado, lo que permite no anular
actualizar la vista en Oracle:consulte esta publicación para actualizar la vista en Oracle, insertar en la vista de Oracle, eliminar de la vista en la base de datos de Oracle

Cursos recomendados

Aquí está el buen curso de Udemy para Oracle SQL
Oracle-Sql-Step-by-step:este curso cubre sql básico, uniones, creación de tablas y modificación de su estructura, creación de vista, unión, unión, todo y mucho más. . Un gran curso y un curso imprescindible para principiantes de SQL
El curso completo de certificación de Oracle SQL :Este es un buen curso para cualquier persona que quiera estar preparado para trabajar con habilidades de desarrollador de SQL. Un buen curso explicado
Oracle SQL Developer:fundamentos, consejos y trucos :muchos desarrolladores utilizan la herramienta de desarrollo Oracle Sql. Este curso nos brinda trucos y lecciones sobre cómo usarlo de manera efectiva y convertirnos en un desarrollador sql productivo
Oracle SQL Performance Tuning Masterclass 2020 :el ajuste del rendimiento es una de las habilidades críticas y más buscadas. Este es un buen curso para aprender sobre esto y comenzar a realizar ajustes de rendimiento de sql