Saltar al contenido

10 ejemplos para comprender las vistas SQL

septiembre 23, 2021
1xEOLl2 qU5fQCzkzEybNag

10 ejemplos para comprender las vistas SQL

Una guía práctica con MySQL

Soner Yıldırım

1 de febrero·6 min de lectura

Foto de Paul Skorupskas en Unsplash

SQL es un lenguaje de programación que se utiliza para administrar y mantener los datos almacenados en bases de datos relacionales. Una base de datos relacional consta de tablas con filas y columnas etiquetadas.

Una de las operaciones más frecuentes con SQL es consultar una base de datos para recuperar datos. Una base de datos relacional típica contiene muchas tablas que están relacionadas entre sí por medio de valores compartidos en una columna conocida como clave externa.

A medida que aumenta el número de mesas, escribir consultas comienza a volverse complejo. Además, normalmente necesitamos filtrar o transformar datos mientras los recuperamos de la base de datos. Así, terminamos escribiendo consultas complicadas y largas para obtener los datos deseados.

Es posible escribir una consulta compleja una o dos veces. Sin embargo, si necesitamos usarlo muchas veces, es necesario un enfoque más práctico. Una opción es guardar la consulta en un archivo de texto o sql y copiarla cuando sea necesario. Está bien, pero hay una mejor opción que es Vistas SQL o simplemente puntos de vista.

Una vista es una consulta almacenada. Las vistas se guardan en el servidor de la base de datos, por lo que no tenemos que copiarlas desde otro archivo. Creamos una vista asignando un nombre a una consulta.

Comencemos con un ejemplo para que tengamos una idea de cómo se ve una vista. Después de eso, desarrollaré los ejemplos y explicaré las opiniones con más detalle.

He creado una tabla de clientes y pedidos con datos simulados. Las tablas contienen información sobre los clientes de una empresa y sus pedidos. Aquí hay una descripción general de las tablas:

tabla de clientes (imagen del autor)
1*Q5Z5GNKWccYCj DCHVRhlw

tabla de pedidos (imagen del autor)

Las tablas están relacionadas por la columna de identificación de cliente (cust_id), por lo que usamos la columna de identificación de cliente para unir estas tablas.

Considere un caso en el que es necesario encontrar el monto total del pedido para cada ubicación. Aquí está la consulta que logró esta tarea.

#Example 1mysql> select customer.location, sum(orders.amount)
-> from customer
-> join orders
-> on customer.cust_id = orders.cust_id
-> group by customer.location;
+----------+--------------------+
| location | sum(orders.amount) |
+----------+--------------------+
| Austin | 9811.09 |
| Dallas | 23288.40 |
| Houston | 12978.33 |
+----------+--------------------+

Seleccionamos la ubicación de la tabla de clientes y la suma del monto de la tabla de pedidos. Las tablas están unidas en la columna de identificación del cliente. La cláusula group by agrupa las entradas (es decir, filas) por ubicación.

Podemos almacenar esta consulta usando una vista de la siguiente manera:

#Example 2mysql> create view totalAmount
-> as
-> select customer.location, sum(orders.amount)
-> from customer
-> join orders
-> on customer.cust_id = orders.cust_id
-> group by customer.location;

La declaración «crear vista» se utiliza junto con un nombre para la vista. Luego, escribimos la consulta después de la palabra clave «as».

Como puede observar, la creación de una vista no devuelve nada o no ejecuta la instrucción select. Las vistas generan un conjunto de resultados solo cuando se invocan.

Podemos invocar vistas del mismo modo que consultamos una tabla. Así es como se hace:

#Example 3mysql> select * from totalAmount;+----------+--------------------+
| location | sum(orders.amount) |
+----------+--------------------+
| Austin | 9811.09 |
| Dallas | 23288.40 |
| Houston | 12978.33 |
+----------+--------------------+

El ejemplo anterior hace que las vistas parezcan tablas. En términos de consulta, las vistas pueden considerarse tablas. Sin embargo, no almacenan ningún dato. Una vez que se ejecuta una vista, SQL recupera los datos de las tablas especificadas dentro de la vista. Por lo tanto, las vistas a veces se denominan tablas virtuales.

close