You are on page 1of 34

SQL Server

Vistas
Definición
• Tabla virtual
• Consulta Select almacenada

• se usan para representar datos almacenados en


una tabla
• algunas tablas pueden alcanzar un tamaño alto
– no necesitas verlos todos a la vez
– vista permite devolver un pequeño subconjunto de
datos de la tabla
• tb para ver datos de varias tablas
utilizar vistas de particiones de tablas

• tablas muy grandes


– solo queremos ver un trozo
• devolver un subconjunto de datos
– emplear una consulta Select con clausula Where
» sirve para consultas que se ejecutan con poca frecuencia
• consultas ad hoc
– usando una vista
consulta select
• USE base de datos
• SELECT nombre, apellidos from nombre tabla
• WHERE codigopostal LIKE ‘29020’
• esta consulta devuelve un subconjunto de
datos
– el codigo no sabes escribirlo
• escribes una consulta en el codigo de cliente
– tiene que enviar por red la consulta cada vez que la uses

– si esta consulta se usa con frecuencia es mejor crear una vista


basada en la consulta
– con la vista
» se puede consultar como si fuera una tabla
• la vista no contiene ningún dato
• solo muestra los datos de la tabla
Crear Vista
• Diseñador de vistas
– es el asistente para crear vistas
Pasos
• Management Studio
• Bases datos – tu base – Vistas – boton derecho
– nueva vista
– Agregar tabla

– Ya tienes el asistente
• podemos escribir en el editor

• SELECT nombre, apellidos


• FROM nombretabla
• WHERE (codigopostal LIKE ‘28%’)

• asi me salen los que comienzan por 28


• abres ventana propiedades
– menu ver – propiedades
– en Esquema – seleccionas Person
– menu archivo – guardar vista
• pones el nombre que quieras - Aceptar
Ejecutar una vista
• igual que una consulta SELECT
– menu archivo nuevo – nueva consulta conexión
actual
• USE base de datos
• SELECT * FROM NombreTabla.nombrevista
• la vista más fácil de consultar pq requiere
menos codigo
Modificar una vista con Diseñador de Vistas

• Vistas – boton derecho en tu vista – Modificar


– añades campo
– cambias condiciones…

– guardar y aceptar
– vuelves a ejecutar
• menu archivo – nuevo – nueva consulta
• si pones muchos campos es dificil de ller
– usamos alias para que los usuarios entiendan
mejor los datos
Alias en las vistas
• Ponemos nombres poco tipicos en las tablas…
– espacios, tildes, mayusculas, ñ…
– solución
• crear un alias para la columna
– muestra un nombre distinto a la columna SIN cambiar el
propio nombre de la columna
• Vistas – tu vista – boton derecho – Modificar
• cambia la consulta Select
• SELECT titulo as [Título], direccion as
[dirección], zip as [Código Postal]
• from nombre tabla
• WHERE zip LIKE ’28%’
Organizar del conjunto de resultados

• los resultados obtenidos no tienen


organización
– SQL almacena registros en la tabla “primero en
llegar”
• salvo que usemos índice agrupado
– clausula ORDER BY
• ordena los resultados de la vista por el orden del
campo elegido
• SELECT TOP 100 PERCENT titulo as [Título],
direccion as [dirección], zip as [Código Postal]
• from nombre tabla
• WHERE zip LIKE ’28%’
• ORDER BY ciudad
• ejecutas y compruebas
vistas para combinar tablas
• clausula JOIN
• SELECT TOP 100 PERCENT titulo as [Título],
direccion as [dirección], zip as [Código Postal]
• from nombre tabla a
• JOIN tabla relacionada b on a.codigo=b.codigo
• WHERE zip LIKE ’28%’
• ORDER BY ciudad
• Esta consulta consume mucho ancho de
banda.
• mejor pasarla a un cliente como una vista.

• el ejemplo anterior lo puedes hacer como


consulta
• pero mejor como vista
Combinación de varias tablas en una vista

• SELECT TOP 100 PERCENT titulo as [Título],


direccion as [dirección], zip as [Código Postal],
b.otrocampo as [Otro Campo]
• from nombre tabla a
• JOIN tabla b on a.codigo=b.codigo
• JOIN tabla b2 on a.codigo=b2.codigo
• WHERE zip LIKE ’28%’
• ORDER BY ciudad
Modificar datos mediante una vista
• la vista tb puede modificar datos
– insert, update, delete
• si usamos una vista para cambiar datos
– la modificación solo puede afectar al mismo tiempo a una tabla
base
• si una vista muestra datos de dos o más tablas
– solo podemos escribir uns instrucción que actualice una de esas tablas
– si no, error
• no podemos modificar datos en vista que usen funciones de agregado
– funciones que devuelven valor de resumen
» SUM()
» AVG()
• si vas a insertar un nuevo campo
– debes poner todos los campos
» por si algunos campos que no se muestran en la vista
• no aceptan valores nulos
• para resolver estas limitaciones podriamos
usar desencadenadores INSTEAD OF
• Crear vista sencilla para modificar datos
– Bases de datos – tu base – Vistas – boton derecho
– Nueva vista
– menu ver – Ventana propiedades
• lista Esquema – selecciona lo que quieras
– Panel SQL escribimos
• SELECT nombre, coste, existencias
• FROM lo seleccionado en Esquema.nombre
tabla

• guardas vista
• ejecuta y a ver si muestra bien los datos
• creamos un nuevo registro
– USE tubase de datos
– INSERT la vista que has grabado
– VALUES (‘juan’,22.87,10)
• ejecutamos el codigo

• USE base de datos


• Select * from fichero vista guardado
• where nombre=‘juan’
• se han insertado en la vista?
• y en la tabla?
• y en el resto de columnas??
Trabajo con vistas indizadas

You might also like