sql server - vistas

Upload: carmelo

Post on 30-May-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 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