2. VISTAS
una vista es una consulta que se
presenta como una tabla (virtual) a partir
de un conjunto de tablas en una base de
datos relacional.
La vista es una tabla virtual, que es el
resultado de una consulta SQL en las que
se carga los datos en el momento de ser
llamada. La vista puede tener datos de
una tabla o de la agrupación de varias
tablas. El objetivo de estas vistas es
agilizar el proceso de consulta a una base
3.
4.
5. SINTAXIS
Sintaxis create view
Esta sentencia crea una vista nueva o reemplaza una
existente si se incluye la cláusula or replace. La
sentencia_select es una sentencia select que proporciona la
definición de la vista. Puede estar dirigida a tablas de la base
o a otras vistas.
Create [or replace] [algorithm = {undefined | merge |
temptable}]
view nombre_vista [(columnas)]
as sentencia_select
[with [cascaded | local] check option]
6. SINTAXIS
Sintaxis de drop view
Drop view elimina una o más vistas de la base de datos. Se
debe poseer el privilegio drop en cada vista a eliminar.
Drop view [if exists]
nombre_vista [, nombre_vista]
[restrict | cascade]
7. ADMINISTRACION DE VISTAS (CREACION
MODIFICACION Y ELIMINACION
Creación:
Para Crear una vista debemos utilizar la sentencia CREATE
VIEW. Debiendo proporcionar un nombre a la vista y una
sentencia SQL SELECT valida.
CREATE VIEW <nombre_vista>
AS
(<sentencia_select>);
8. Modificación:
Si queremos modificar la definicion de nuestra vista podemos utilizar la
sentencia ALTER VIEW de forma muy parecida a como lo hacimos con las
tablas. En este caso queremos añadir los campos fx_alquiler y
fx_devolucion a la vista.
ALTER VIEW vAlquiler
AS
(
SELECT Nombre,
Apellidos,
Matricula,
Fx_alquiler,
Fx_devolucion
FROM tAlquileres,
tClientes
WHERE (tAlquileres.codigo_cliente=tClientes.codigo)
9. Eliminación:
Podemos eliminar la vista a través de la sentencia
VIEW. Para eliminar la vista que hemos creado
anteriormente se utilizaría:
DROP VIEW vAlquileres;
11. EJEMPLOSi se tuviera que hacer un reporte de este modelo,
donde aparecieran los siguientes datos el nombre
(nombres y apellidos) de la persona, su genero y su
estado civil (no en código) seria necesario hacer una
consulta de este tipo:
SELECT P.CODIGO 'CODIGO', P.PRIMER_NOMBRE 'PRIMER
NOMBRE',
P.SEGUNDO_NOMBRE 'SEGUNDO NOMBRE',
P.PRIMER_APELLIDO 'PRIMER APELLIDO',
P.SEGUNDO_APELLIDO 'SEGUNDO APELLIDO',
E.DESCRIPCION 'ESTADO CIVIL',
G.DESCRIPCION 'GENERO'
FROM PERSONA P, ESTADO_CIVIL E, GENERO G
WHERE P.COD_ESTADO_CIVIL = E.CODIGO AND
P.COD_GENERO = G.GENEERO
Pero al ver que es frecuente este tipo de reportes, se ve
la necesidad de crear una vista para guardar la consulta
SQL. Para crear una vista se utilizara el siguiente código
12. EJEMPLO
– En este espacio va la consulta SQL que se realiza con
frecuencia
);
donde CREATE OR REPLACE (OR REPLACE es opcional pero recomendable, para
que la remplace en caso de que exista) lo que hace es crear o remplazar la vista y
NOMBRE_VISTA es el nombre que se le desee dar a la vista. Ejemplo
CREATE OR REPLACE VIEW PERSONA_GENERO_ESTADO AS(
SELECT P.CODIGO 'CODIGO', P.PRIMER_NOMBRE 'PRIMER NOMBRE',
P.SEGUNDO_NOMBRE 'SEGUNDO NOMBRE',
P.PRIMER_APELLIDO 'PRIMER APELLIDO', P.SEGUNDO_APELLIDO 'SEGUNDO
APELLIDO',
E.DESCRIPCION 'ESTADO CIVIL', G.DESCRIPCION 'GENERO'
FROM PERSONA P, ESTADO_CIVIL E, GENERO G
WHERE P.COD_ESTADO_CIVIL = E.CODIGO AND P.COD_GENERO = G.GENEERO
);
y en una próxima vez que se requiera hacer esa consulta bastaría con el siguiente
query:
SELECT * FROM PERSONA_GENERO_ESTADO
13. EJEMPLO
Crear una vista
En este ejemplo, el usuario rocket crea una vista en la
tabla de empleados para restringir el acceso solo a
aquellos registros en los que el departamento es 201:
CREATE VIEW view_dept_201
AS SELECT emp_id, name, hire_date
FROM gdb.employees
WHERE department = 201;