sábado, 4 de junio de 2016

Vistas en MYSql Server (MariaDB)

Buenas tardes queridos lectores, en esta ocasión aprenderemos a crear vistas, pero primero veamos que es una vista:

Vista

Una vista en MySQL Server es una tabla virtual, con una estructura que nosotros definimos, pero sin datos, ya que los datos de esa tabla serán llenados a partir de una consulta, eso, también se puede realizar con procedimientos almacenados, pero esos los veremos mas adelante, pero la diferencia con ellos es que los procedimientos almacenados aceptan parámetros y las vistas no. Pero pasemos a la práctica que es lo que nos interesa, nos gusta y nos enseña.


Ejercicio 1:

Crear una VISTA, que nos muestre los equipos de México y el nombre de su estadio, capacidad y ciudad, utilizando la sentencia CREATE VIEW

CREATE VIEW
equipos_estadios_mexico
AS
select eq.idequipo, eq.abreviacion, eq.nombre, e.nombre as NombreEstadio, e.capacidad,e.ciudad
from equipos eq
inner join estadios e
on e.idestadio=eq.idestadio
where eq.codigopais='MX';

Al ejecutar esta sentencia, estamos creando la tabla temporal, cuyos datos son el resultado de la consulta que estamos creando, para confirmar lo que les digo queridos lectores, vamos a mostrar las tablas que tiene nuestra base de datos:

show tables


Como ven tenemos una nueva tabla creada llamada equipos_estadios_mexico, que se creo con la vista, para consultar la tabla, basta con hacer un SELECT en ella, de la siguiente manera:

select * from equipos_estadios_mexico

Y obtendremos el siguiente resultado:


Como ven, esa tabla virtual nos devuelve el resultado de la consulta, y es lo que se conoce como VISTA, pero podemos preguntarnos, si es una tabla virtual, ¿podremos borrar datos?, esa sería una buena y lógica pregunta, pues bien, la respuesta es no, para empezar la VISTA es una tabla virtual, no es una tabla real que llenamos de un formulario o de algún procedimiento, en segundo lugar la consulta viene de los JOINS, en tercer lugar el idequipo es una llave primaria y ya hay partidos registrados a ese equipo y si recordamos los primeros post, no podíamos borrar registros ligados para cuidar la integridad de la información, pero vamos a intentarlo, para que no quede todo en la teoría.

delete from equipos_estadios_mexico where idequipo=1


Ahora se podrán hacer otra pregunta: Al ser una tabla virtual ¿se podrá unir con otra mediante el uso de JOIN? Pues bien, esa es otra pregunta lógica e interesante y la respuesta es SI, podemos usar las VISTAS para unirla a otra tabla mediante los JOINS y para eso vamos a utilizar un ejemplo:

Ejercicio 2:

Mostrar la información de todos los partidos que ha jugado el equipo “Cruz Azul” en toda la historia de la base de datos, utilizando la VISTA equipos_estadios_mexico unida a la tabla PARTIDOS mediante el uso de JOIN

select p.num_partido, p.jornada, p.fecha, p.equipolocal, p.GolesLocal,  p.equipovisitante,p.golesvisitante, eem.nombreestadio, eem.capacidad
from partidos p
inner join equipos_estadios_mexico eem on eem.idequipo = p.idEquipoLocal
where (p.idEquipoLocal = 1 or p.idequipovisitante=1)


Como pueden ver queridos estudiantes, estamos uniendo la tabla PARTIDOS con la tabla virtual EQUIPOS_ESTADIOS_MEXICO, de esta manera nos ahorramos un JOIN más, y no ligamos tres tablas, sino solo dos. Veamos algunas de las ventajas de las vistas

Ventajas de las Vistas

  • Se almacenan en el servidos, por lo cual estarán siempre disponibles
  • Guardan una consulta compleja y la ejecución posterior se vuelve más fácil
  • Ocultan el nombre de las tablas y campos del que procede la información a otros desarrolladores.
  • Simplifican el uso de JOINS
Seguramente alguien sepa más ventajas del uso de las vistas, si es así pueden comentar.

Hasta aquí el post queridos lectores, si tienes alguna duda o comentario no vacilen en preguntar, estoy a sus ordenes para lo que gusten, no se olviden de dar +1, comentar, o dar clic en algún anuncio patrocinador.

Saludos!!





Banderas de Visitantes

Flag Counter