Cómo Manejar vistas en MySQL - CableNaranja

¡Comparte nuestro contenido!

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

En muchas ocasiones, sobre todo cuando trabajamos en proyectos grandes, crear y ejecutar consultas puede convertirse en un problema de optimización. Para evitar esto, un buen gestor de base de datos provee diversos mecanismos. Uno de los cuales, analizaremos en este artículo: Las vistas o views ¿Listos para comenzar? ¡Manos a la obra!

¿Qué es una vista o view?

Una vista es una consulta temporal conocida también como tabla virtual, ya que no contiene datos en sí, en su lugar son un mecanismo abstracto para traer información de una o más tablas de manera que no sea necesario exponer la fuente original.

Las vistas conceden principalmente tres ventajas importantes:

  • Facilitan el control de acceso: Al ser consideradas tablas (aunque no lo son) se pueden crear usuarios que tenga acceso a ellas únicamente, aislando dichos usuarios del resto de la base de datos. Algo muy típico, por ejemplo, con usuarios que solo ejecutan consultas.
  • Mejoran el rendimiento: Se pueden hacer consultas sencillas a vistas que son el resultado de una consulta mucho más compleja.
  • Cuidado de la integridad: Al usar las vistas en lugar de las tablas reales, se puede conservar mucho mejor la integridad de la base de datos.

¿Cómo se crean las vistas?

La sintaxis para crear una vista en MySQL, es la siguiente:

CREATE VIEW <Nombre de vista>
AS <Consulta>;

Donde:

  • Nombre de vista: Es el nombre que le vamos a dar a la vista. Es recomendable que sea corto, y además no tenga espacios, ni caracteres especiales.
  • Consulta: Es la consulta en la que se va a basar la vista.

Por ejemplo, con una tabla como esta:

Cómo Manejar vistas en MySQL - CableNaranja

Y estos datos:

Cómo Manejar vistas en MySQL - CableNaranja

Crearemos una vista que muestre nombre e id de los primeros 5 productos de la lista.

CREATE VIEW top5Productos
AS select proId, proNombre from productos order by proId limit 5;

Mostrar las vistas de una base de datos

Como las vistas son en teoría tablas, la mejor forma de visualizarlas es con el comando show tables.

show tables;

Como podemos observar en la imagen de abajo, no hay diferencia entre una tabla y una vista en el resultado.

Cómo Manejar vistas en MySQL - CableNaranja

Y si le hacemos un describe

describe top5Productos;
Cómo Manejar vistas en MySQL - CableNaranja

Podemos observar que nos trae la definición de cada campo.

Cómo mostrar los resultados de una vista

Para mostrar el resultado de una vista, la tratamos igual que una consulta, es decir, con un SELECT. En nuestro caso, por ejemplo:

select proId, proNombre from top5Productos;

Producirá como resultados:

Cómo Manejar vistas en MySQL - CableNaranja

Cómo eliminar una vista

Para eliminar una vista que ya no necesitamos, utilizamos el comando DROP VIEW, seguido del nombre de la vista, por ejemplo:

drop view top5Productos;

Elimina la vista por completo.

Cómo Manejar vistas en MySQL - CableNaranja

Cómo modificar una vista

Para modificar una vista, utilizamos el comando CREATE VIEW seguido del nombre de la vista y la redefinición de la misma. Por ejemplo, modificaremos nuestra vista para incluir la cantidad y el precio.

ALTER VIEW top5Productos AS select proId, proNombre, proCantidad, proPrecio from productos order by proId limit 5;

Para corroborar que el cambio ha sido hecho, hagamos un simple SELECT.

select * from top5Productos;

Con eso, podemos ver los nuevos resultados.

Cómo Manejar vistas en MySQL - CableNaranja

Hagamos algunas vistas

Crear una vista que muestre: nombre, marca, cantidad y fecha de caducidad de los productos que caducan en el mes de julio.

CREATE VIEW caducaJulio AS select proNombre, proMarca, proCantidad, proCaducidad from productos where proCaducidad LIKE "%-07-%";

select * from caducaJulio;

Resultado:

Cómo Manejar vistas en MySQL - CableNaranja

Crear una vista que muestre la cantidad, nombre y contenido neto de los productos que están medidos en gramos.

CREATE VIEW enGramos AS select proCantidad, proNombre, proNeto from productos where proMedida = "Grs";

select * from enGramos;

Resultado:

Cómo Manejar vistas en MySQL - CableNaranja

Crear una vista que muestre nombre, cantidad y precio de los productos de la marca Coca Cola.

CREATE VIEW porMarca AS select proNombre, proCantidad, proPrecio from productos where proMarca = "Coca Cola";

select * from porMarca;

Resultado:

Cómo Manejar vistas en MySQL - CableNaranja

Y eso es todo por ahora ¿Te ha resultado? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.

¡Comparte nuestro contenido!

Entradas relacionadas

4 comentarios en "Cómo manejar vistas en MySQL"

  1. Buenas tardes, tienes algún comparativo para saber si las vistas tienen mejor performance en la rapidez de la devolución de datos respecto al sql original, ¿O en ese punto son equivalentes?
    Saludos y gracias

Deja un comentario

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