Una vista es una sentencia
SELECT constituida como un objeto de SQL separado de la tabla o tablas a las
que hace referencia. El resultado de su ejecución es un conjunto de registros
similar al que obtendríamos con una tabla.
La vista no es una tabla, es una
definición de una consulta es decir no posee datos propios. Una vez que está
definida la consulta, una vista puede utilizarse como si fuera una tabla, refiriéndose
a ella por su nombre.
Aspectos básicos, Utilidad de las vistas
Las vistas son utilizadas para
facilitar consultas de uso frecuente, o de difícil construcción, también sirven
como parte de la política de seguridad del sistema particionando vertical y
horizontalmente los datos de las tablas que muestra. Las vistas se utilizan para:
Proteger la confidencialidad.
Si una tabla contiene datos
que no deben ser accesibles a algunos usuarios, puede construirse una vista en
la que dichos datos no aparezcan y autorizar a los usuarios a trabajar con la
vista en lugar de con la tabla. De este modo se restringe el acceso a ciertas
columnas, mediante la lista de la cláusula SELECT de la vista, y a ciertas
filas, seleccionándolas mediante la cláusula WHERE.
Facilidad de utilización.
El Administrador puede
formular sentencias SELECT complejas y almacenarlas como vistas, de puedan
utilizar usuarios con poca experiencia y no necesiten crearlas de nuevo para
poder acceder a los datos.
Independencia con respecto a
los datos.
Cambios en la implementación
de las tablas de la base de datos que incluyan cambios en los nombres de las
columnas pueden originar que los programas deban actualizarse. Una forma de evitar
este problema es creando vistas con nombres fijos que san las utilizadas por
los programas.
Consulta y actualización
Una vista es actualizable sí es
posible trasladar las modificaciones que en ella se introduzcan en la tablas o
tablas de las que proviene. Esta actualización de tablas no será posible si
existe ambigüedad en la procedencia de los datos, es decir cuando no exista una
correspondencia biunívoca entre las filas de la vista y la de las tablas
asociadas. En las siguientes situaciones la vista no será actualizable.
Vistas que realicen joins de dos o más tablas.
Vistas que contengan funciones colectivas
Vistas que contengan funciones colectivas
Vistas que contengan la
cláusula GROUP BY
Vistas que contengan la
cláusula DISTINCT.
Creación de vistas
Para crear vistas a través de comandos
se utiliza la sintaxis de definición CREATE VIEW.
CREATE
VIEW [ propietario. ] nombre_vista [ (columna [ ,...n ] ) ]
[
WITH <atributo> [ ,...n ] ] AS sentencia_select
[ WITH CHECK OPTION ]
[ ; ]
<atributo>
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
}
Lista de columnas.
La lista de identificadores de
columna es opcional y permite especificar nombres de columna diferentes a los de la tabla de la que
procede. Sólo es imprescindible indicar un nombre de columna de la vista si deriva
de una expresión aritmética, una función o una constante, o si dos
columnas de la vista tienen el mismo nombre en las tablas de origen, como
consecuencia de un join.
Encriptado.
La cláusula WITH ENCRYPTION
encripta las filas de la tabla syscomments en las cuales se encuentra el texto
de definición de la vista del catálogo, para que la sintaxis de la sentencia SELECT
no pueda ser consultada por ningún usuario.
Esta select muestra la
definición de todos los objetos definidos en la base de datos.
select *
from syscomments
Consulta que define la vista a
través de sentencia_select.
En la cláusula AS se
especificará una sentencia SELECT que definirá la vista. Esta sentencia SELECT consulta
datos de una o varias tablas, sin embargo existen algunas restricciones para
esta consulta:
No puede contener la cláusula
ORDER BY.
No puede incluir la palabra
clave INTO.
No puede hacer referencia a
una tabla temporal.
Esto es un ejemplo de una
vista sencilla.
CREATE VIEW
[DBO].[Nombre_vista]
AS
SELECT Columna1
FROM DBO.Nombre_tabla
WHERE NOT EXISTS (SELECT * FROM DBO Nombre_tabla
WHERE Columna2
= DBO Nombre_tabla.Columna1)
GO
En este caso se realiza una
select sobre una única tabla pero con la condición que de que el contenido de
la columna1 no exista en otra columna de esa misma tabla llamada columna2.
Creación
de vistas mediante el Administrador Corporativo
Las vistas también pueden
definirse con el Administrador Corporativo.
Sobre la base de datos
desplegando y posicionándonos sobre la carpeta vistas con el botón derecho del
ratón elegimos Nueva vista…
Con esto aparecerá el siguiente cuadro de diálogo
En el que elegiremos la tabla
o tablas o incluso podemos elegir otras vistas, funciones y sinónimos anteriormente
creados para incluir en nuestra vista. A medida que elegimos los objetos
deseados pulsamos el botón agregar para añadirlas al diagrama del diseñador de
vistas.
También es posible arrastrar
las tablas que sirvan de base a la vista al diagrama del diseñador visual. Una vez
seleccionadas las tablas puede construirse la consulta gráficamente en el
editor, para ello unimos las diferentes columnas de las tablas para hacer
joints o select complejas otro procedimiento es
simplemente escribir la sentencia SQL directamente. Según deseemos.
En la imagen de arriba se ha
marcado como el filtro ascendente se refleja en la SELECT con una cláusula ORDER
BY.
Pulsando el botón Guardar, SQL Server almacena la vista y realiza un
chequeo de su sintaxis.
Para eliminar una vista basta
con acceder a ella desde el Administrador Corporativo elegirla y pulsar el
botón derecho del ratón y eliminar.
También podemos destruir una
vista utilizando DROP VIEW [ propietario. ] nombre_vista
en
este caso se destruirán todas las vistas que dependan de ella. Si eliminamos
una tabla también se eliminarán las vistas que dependan de ella.
No hay comentarios:
Publicar un comentario