Conoce SQL – VIEWS (vistas)

Ahora ya sabemos como hacer consultas bastante completas, pero ademas de ser un rollo tener que escribir todo ese tocho en nuestro código del programa (php o el que sea) es poco seguro y en ocasiones menos eficiente.  Una vista es una especie de “compilación” de una consulta.

A nuestros ojos una vista es una tabla de solo lectura aunque veremos más adelante un truquillo para “insertar” datos en una vista (hacer insert a una vista y que funcione).

La principal ventaja de las vistas es que nos facilita el trabajo con consultas complejas. Pero quédate con el con el concepto de que una vista es una consulta SQL.

Este capítulo va a ser breve ya que sabiendo DQL las vistas no tienen gran cosa. Vamos a usar una consulta que vimos anteriormente:

SELECT codigo_paquete,descripcion,ciudad,IFNULL(fecha_entrega,’No entregado’) as entregado FROM paquetes
JOIN ciudades USING (id_ciudad)

Ahora queremos que extraer datos de esa consulta sera más sencillo y más seguro. Más seguro en el sentido de que en el programa no “damos pistas” de como es la estructura interna de la base de datos.

La cosa es tan fácil como

CREATE VIEW lista_paquetes
AS
SELECT codigo_paquete,descripcion,ciudad,IFNULL(fecha_entrega,’No entregado’) as entregado FROM paquetes
JOIN ciudades USING (id_ciudad)

Lo único que hay que poner es CREATE VIEW nombre_de_la_vista AS consulta. Pero hay que tener en cuenta una cosilla. Cuando usemos cualquier funcion (count,sum,ifnull en este caso…) hay que asignar un alias a esa columna. El motivo de esa obligación es porque toda columna tiene que tener un nombre para ser accesible como bien dice la segunda regla de Codd.

Ahora podemos realizar consultas a esa vista como si de una tabla se tratase

SELECT * FROM lista_paquetes WHERE codigo_paquete=’PA123′

Ahora con esto puedes jugar lo que quieras. Como dije antes, la vista es una consulta en el fondo asi que cuando alteres los datos de las tablas (en este caso codigo_paquete y ciudades) también cambiarán los datos de las vistas de manera automática, como indica la regla 6 de Codd (ay que pesadito estoy hoy el Codd ese).

Las vistas son algo muy útil pero como siempre moderación, no hagas muchas vistas que no vayas a usar o que no sean útiles. Recuerda que todo afecta al buen funcionamiento del base de datos y cada vez que modificas una tabla el sistema gestor (mysql en nuestro caso) tiene que ir actualizando las vistas.

Buena suerte con las vistas! Ya terminamos con SQL, el siguiente capítulo ya será sobre el lenguaje procedimental de MySQL. Nos vemos!

You may also like...

3 Responses

  1. DiCrEn dice:

    Estoy de vacaciones, pero pronto volveré xD

  2. Maxpowel dice:

    y a ver cuando montas el video! trabaja esclavo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *