SQL Server - Vistas
Transcript of SQL Server - Vistas
-
8/9/2019 SQL Server - Vistas
1/34
SQL Server
Vistas
-
8/9/2019 SQL Server - Vistas
2/34
Definicin
Tabla virtual
Consulta Select almacenada
se usan para representar datos almacenados enuna tabla
algunas tablas pueden alcanzar un tamao alto
no necesitas verlos todos a la vez vista permite devolver un pequeo subconjunto de
datos de la tabla
-
8/9/2019 SQL Server - Vistas
3/34
tb para ver datos de varias tablas
-
8/9/2019 SQL Server - Vistas
4/34
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
-
8/9/2019 SQL Server - Vistas
5/34
consulta select
USE base de datos
SELECT nombre, apellidos from nombre tabla
WHERE codigopostal LIKE 29020
-
8/9/2019 SQL Server - Vistas
6/34
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
-
8/9/2019 SQL Server - Vistas
7/34
la vista no contiene ningn dato
solo muestra los datos de la tabla
-
8/9/2019 SQL Server - Vistas
8/34
Crear Vista
Diseador de vistas
es el asistente para crear vistas
-
8/9/2019 SQL Server - Vistas
9/34
Pasos
Management Studio
Bases datos tu base Vistas boton
derecho nueva vista Agregar tabla
Ya tienes el asistente
-
8/9/2019 SQL Server - Vistas
10/34
podemos escribir en el editor
SELECT nombre, apellidos FROM nombretabla
WHERE (codigopostal LIKE 28%)
asi me salen los que comienzan por 28
-
8/9/2019 SQL Server - Vistas
11/34
abres ventana propiedades
menu ver propiedades
en Esquema seleccionasP
erson menu archivo guardar vista
pones el nombre que quieras - Aceptar
-
8/9/2019 SQL Server - Vistas
12/34
-
8/9/2019 SQL Server - Vistas
13/34
la vista ms fcil de consultar pq requiere
menos codigo
-
8/9/2019 SQL Server - Vistas
14/34
Modificar una vista con Diseador de
Vistas
Vistas boton derecho en tu vista Modificar
aades campo
cambias condiciones
guardar y aceptar
vuelves a ejecutar
menu archivo nuevo nueva consulta
-
8/9/2019 SQL Server - Vistas
15/34
si pones muchos campos es dificil de ller
usamos alias para que los usuarios entiendan
mejor los datos
-
8/9/2019 SQL Server - Vistas
16/34
Alias en las vistas
Ponemos nombres poco tipicos en las tablas
espacios, tildes, mayusculas,
solucin crear un alias para la columna
muestra un nombre distinto a la columna SIN cambiar el
propio nombre de la columna
-
8/9/2019 SQL Server - Vistas
17/34
Vistas tu vista boton derecho Modificar
cambia la consulta Select
-
8/9/2019 SQL Server - Vistas
18/34
SELECT titulo as [Ttulo], direccion as
[direccin], zip as [Cdigo Postal]
from nombre tabla WHERE zip LIKE 28%
-
8/9/2019 SQL Server - Vistas
19/34
Organizar del conjunto de resultados
los resultados obtenidos no tienen
organizacin
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 campoelegido
-
8/9/2019 SQL Server - Vistas
20/34
SELECT TOP 100 PERCENT titulo as [Ttulo],
direccion as [direccin], zip as [Cdigo Postal]
from nombre tabla WHERE zip LIKE 28%
ORDER BY ciudad
-
8/9/2019 SQL Server - Vistas
21/34
ejecutas y compruebas
-
8/9/2019 SQL Server - Vistas
22/34
vistas para combinar tablas
clausula JOIN
-
8/9/2019 SQL Server - Vistas
23/34
SELECT TOP 100 PERCENT titulo as [Ttulo],
direccion as [direccin], zip as [Cdigo Postal]
from nombre tabla a JOIN tabla relacionada b on a.codigo=b.codigo
WHERE zip LIKE 28%
ORDER BY ciudad
-
8/9/2019 SQL Server - Vistas
24/34
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
-
8/9/2019 SQL Server - Vistas
25/34
Combinacin de varias tablas en una
vista
SELECT TOP 100 PERCENT titulo as [Ttulo],
direccion as [direccin], zip as [Cdigo 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
-
8/9/2019 SQL Server - Vistas
26/34
Modificar datos mediante una vista
la vista tb puede modificar datos
insert, update, delete
-
8/9/2019 SQL Server - Vistas
27/34
si usamos una vista para cambiar datos la modificacin solo puede afectar al mismo tiempo a una
tabla base si una vista muestra datos de dos o ms tablas
solo podemos escribir uns instruccin que actualice una de esas tablas si no, error
no podemos modificar datos en vista que usen funciones deagregado
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
-
8/9/2019 SQL Server - Vistas
28/34
para resolver estas limitaciones podriamos
usar desencadenadores INSTEAD OF
-
8/9/2019 SQL Server - Vistas
29/34
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
-
8/9/2019 SQL Server - Vistas
30/34
SELECT nombre, coste, existencias
FROM lo seleccionado en Esquema.nombre
tabla
guardas vista ejecuta y a ver si muestra bien los datos
-
8/9/2019 SQL Server - Vistas
31/34
creamos un nuevo registro
USE tubase de datos
INSERT la vista que has grabado
VALUES (juan,22.87,10)
-
8/9/2019 SQL Server - Vistas
32/34
-
8/9/2019 SQL Server - Vistas
33/34
se han insertado en la vista?
y en la tabla?
y en el resto de columnas??
-
8/9/2019 SQL Server - Vistas
34/34
Trabajo con vistas indizadas