Cómo crear y manejar vistas en MySQL - Hielo Creativo
Califica este contenido
[Total: 0 Promedio: 0]

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 en MySQL?

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:

Una tabla MySQL creada - Hielo Creativo

Y con estos datos:

Captura de productos en una tabla MySQL - Hielo Creativo

Por ejemplo, creamos una vista que muestre nombre e id de los primeros 5 productos de la lista. Le llamaremos a la vista Top5Productos.

CREATE VIEW Top5Productos AS
SELECT proId, proNombre from tblProductos ORDER BY proId LIMIT 5;

Ejecutamos la cadena SQL para que se cree

Creación de una vista en SQL - Hielo Creativo

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.

Ejecución del comando show tables en MySQL - Hielo Creativo

Y si le hacemos un describe a la vista, podemos observar que nos trae la definición de cada campo.

El comando DESCRIBE de MySQL sobre una vista - Hielo Creativo

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;

Y entonces podemos ver los resultados:

Ejecutando un SELECT sobre una vista en MySQL - Hielo Creativo

Creando vistas con alias

Es posible que queramos ocultar los nombres de los campos, no solamente el nombre de la tabla que estamos consultado. De ser así, solo tenemos que añadir la clausula AS dentro de la consulta de nuestra vista. Por ejemplo, creare una vista que muestre nombre, precio y cantidad de los productos que se miden en gramos, pero substituyendo el nombre de cada campo, por una etiqueta más legible.

CREATE VIEW EnGramos AS
SELECT proNombre AS "Producto", proPrecio AS "Precio",
proCantidad AS "Cantidad" FROM tblProductos
WHERE proMedida = "Gr";

Ejecutamos el código SQL

Ejecutando una vista en phpMyAdmin - Hielo Creativo

Y le hacemos un SELECT.

SELECT * FROM EnGramos;

Podemos ver en los resultados, como se han sustituido los nombres de los campos por las etiquetas.

Resultados de un SELECT sobre una vista en SQL - Hielo Creativo

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 EnGramos;

Se elimina la vista por completo.

Eliminar una vista en MySQL - Hielo Creativo

Cómo modificar una vista

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

ALTER VIEW top5Productos AS SELECT proId, proNombre, proCantidad, proPrecio
FROM tblProductos ORDER BY proId LIMIT 5;

Ejecutamos el comando para que se actualice la vista.

Comando ALTER VIEW para modificar vistas en MySQL - Hielo Creativo

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

SELECT * FROM top5Productos;

Con eso, podemos ver los nuevos resultados.

Ejecutando un SELECT sobre otra vista - Hielo Creativo

Comentarios, dudas y preguntas

¡Y eso es todo! No olvides dejar tus comentarios, dudas y / o preguntas. Con gusto las respondemos.

Califica este contenido
[Total: 0 Promedio: 0]

Entradas relacionadas

Deja un comentario

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