Una vista se define en SQL usando la orden CREATE VIEW. Para definir una vista debemos dar a la vista un nombre y declarar la consulta que calcula la vista. Una vez que establecemos una vista, podemos ejecutar una sentencia SELECT que referencie a esa vista. El sistema asociará la vista SQL con una tabla base y extraerá y visualizará, entonces, los datos de la tabla base.
Esto significa que una vista no contiene datos duplicados de una tabla base. No tiene absolutamente ningún dato, puesto que no es una tabla real, todo el proceso se realiza con los datos almacenados en la tabla base. Es decir se percibe como una tabla virtual.
Las ordenes que se utilizan para la manipulación de vistas son:
CREATE VIEW: Crea una tabla virtual.
DROP VIEW: Elimina una vista creada anteriormente.
Estructura de la sentencia CREATE VIEW.
CREATE VIEW Nombre de la vista AS(Expresión de consulta);
Para nuestros ejemplos consideremos de nuevo la tabla llamada CURSO, que contiene los siguientes campos:
Nombre del campo
|
Descripción
|
NumC
|
Número del curso, único para identificar cada curso
|
NombreC
|
Nombre del curso, también es único
|
DescC
|
Descripción del curso
|
Creditos
|
Créditos, número de estos que gana al estudiante al cursarlo
|
Costo
|
Costo del curso.
|
Depto
|
Departamento académico que ofrece el curso.
|
Que contiene los siguientes datos:
NumC
|
NombreC
|
DescC
|
Creditos
|
Costo
|
Depto
|
A01
|
Liderazgo
|
Para público General
|
10
|
100.00
|
Admón.
|
S01
|
Introducción a la inteligencia artificial
|
Para ISC y LI
|
10
|
90.00
|
Sistemas.
|
C01
|
Construcción de torres
|
Para IC y Arquitectura
|
8
|
0.00
|
Ciencias
|
B01
|
Situación actual y perspectivas de la alimentación y la nutrición
|
Para IB
|
8
|
80.00
|
Bioquímica
|
E01
|
Historia presente y futuro de la energía solar
|
IE e II
|
10
|
100.00
|
Electromecánica.
|
S02
|
Tecnología OLAP
|
Para ISC y LI
|
8
|
100.00
|
Sistemas
|
C02
|
Tecnología del concreto y de las Estructuras
|
Para IC
|
10
|
100.00
|
Ciencias
|
B02
|
Metabolismo de lípidos en el camarón
|
Para IB
|
10
|
0.00
|
Bioquímica
|
E02
|
Los sistemas eléctricos de potencia
|
Para IE
|
10
|
100.00
|
Electromecánica
|
S03
|
Estructura de datos
|
Para ISC y LI
|
8
|
0.00
|
Sistemas
|
A01
|
Diseño bioclimático
|
Para Arquitectura
|
10
|
0.00
|
Arquitectura
|
C03
|
Matemáticas discretas
|
General
|
8
|
0.00
|
Ciencias
|
S04
|
Circuitos digitales
|
Para ISC
|
10
|
0.00
|
Sistemas
|
S05
|
Arquitectura de Computadoras
|
Para ISC
|
10
|
50.00
|
Sistemas
|
I01
|
Base de Datos Relacionales
|
Para ISC y LI
|
10
|
150.00
|
Informática
|
Ejemplos:
* Crear una vista (tabla virtual), denominada CursosS, que contenga las filas solo correspondientes a cursos ofrecidos por el departamento Sistemas. La vista deberá contener todas las columnas de la tabla CURSO, con la excepción de la columna Depto, la secuencia, de izquierda a derecha de las columnas, deberá ser: NombreC, NumC, Creditos, Costo Y DescC.
CREATE VIEWCursosS AS
SELECT NombreC,NumC,Creditos,Costo,DescC
FROM CURSO
WHERE DescC=’Sistemas’;
Observemos que después del nombre de la vista ponemos la sentencia AS, esto para definir la estructura de la vista, la estructura en si de la vista esta formada por la consulta anteriormente vista utilizando la orden SELECT.
* Crear una vista denominada CursosCaros, correspondientes a las filas de la tabla CURSO, en donde la tarifa exceda de $150, las columnas de la vista deberán tener los nombres ClaveCurso, NombreCurso y CostoCaro.
CREATE VIEW CursosSCaros(ClaveCurso,NombreCurso,CostoCaro) As
SELECT NumC,NombreC, Costo
FROM Curso
WHERE Costo > 150;
Observamos que después del nombre de la vista CursosCaros ponemos los nombres que se nos pidieron tuvieran los campos de la vista(ClaveCurso,...), después se realiza la consulta correspondiente para generar el resultado deseado.
Visualizar las vistas
Creamos una tabla virtual que contiene los datos de las consultas que deseamos, ahora nos falta visualizar estos datos, para ello utilizamos la sentencia SELECT y realizamos la consulta:
SELECT *
FROM CursosCaros;
De esta consulta podemos observar que mostramos todos los campos que la vista contiene, aunque podemos visualizar solo alguno de ellos, también observamos que sustituimos el nombre de la vista por el de la tabla junto a la sentencia FROM, esto es por que una vista es una tabla virtual, pero guarda los datos como cualquier tabla normal.
Eliminar una vista
Como si fuera una tabla normal, las vistas también pueden borrarse, para ello utilizamos la sentencia DROP VIEW.
Estructura de la sentencia DROP VIEW.
DROP VIEW Nombre de la vista a borrar;
Ejemplo: Borrar la vista CursosCaros creada anteriormente.
DROP VIEW CursosCaros;