Introducción a las vistas en MySQL

La vista SQL no es más que una tabla virtual de la base de datos. La vista contiene campos como una tabla real, pero esos campos son de una o más tablas en la base de datos que se ejecutan ejecutando un montón de consultas MySQL. Podemos realizar operaciones como las cláusulas WHERE y JOIN en las tablas virtuales. Por otro lado, VIEW no es más que consultas SELECT.

Sintaxis:

CREATE VIEW view_name AS
SELECT column1, column2, …
FROM table;

  • "CREATE VIEW view_name" ordena a MySQL crear una vista / tabla virtual en el nombre de view_name.
  • La declaración "AS SELECT column1, column2 FROM table" recupera column1 y column2 de la tabla real. Luego guarda esos campos en la tabla virtual.

¿Cómo crear vistas en MySQL?

Creemos una tabla de clientes con los siguientes atributos:

Identificación del cliente Nombre del cliente Contact_no Email Cantidad_comprada Ciudad
184 Ravi Kumar 9887463893 8000.00 Calcuta
987 Vinay Das 9839878678 12000.00 Delhi
452 K.Amarnath 7598759387 15000.00 Calcuta
874 Abhinash Desai 7675878798 5000, 00 Mumbai

Crearemos una tabla cutomser_archive con nuestro atributo requerido.

Consulta # 1

CREATE VIEW customer_archive AS
SELECT customer_id, customer_name, contact_no, city
FROM customer;

Salida:

Identificación del cliente Nombre del cliente Contact_no Ciudad
184 Ravi Kumar 9887463893 Calcuta
987 Vinay Das 9839878678 Delhi
452 K.Amarnath 7598759387 Calcuta
874 Abhinash Desai 7675878798 Mumbai

También podemos aplicar la condición a esta consulta mientras creamos una vista.

Consulta # 2

CREATE VIEW customer_archive AS
SELECT customer_id, customer_name, contact_no, purchased_amont, city
FROM customer
WHERE purchased_amont > 10000;

Salida:

Identificación del cliente Nombre del cliente Contact_no Cantidad_comprada Ciudad
987 Vinay Das 9839878678 12000.00 Delhi
452 K.Amarnath 7598759387 15000.00 Calcuta

Diferentes opciones de vista en MySQL

Las siguientes son las diferentes opciones de vista en MySQL explicadas con más detalle,

1. DROP: una vista / tabla virtual se puede eliminar con el comando DROP VIEW. Si queremos eliminar la tabla customer_archive,

Sintaxis:

DROP VIEW customer_archive;

2. CREAR O REEMPLAZAR: Con el comando CREAR O REEMPLAZAR VISTA podemos actualizar una vista / tabla virtual.

Sintaxis:

CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ….
FROM table;

3. UNIRSE: También podemos crear una vista uniendo varias tablas. Esta unión obtendrá registros coincidentes de ambas tablas. Existen diferentes tipos de combinaciones denominadas combinación interna, combinación izquierda, combinación derecha, combinación externa completa, combinación cruzada, etc.

Sintaxis:

CREATE VIEW view-name AS
SELECT column1, column2, column3, …
FROM table_name1 INNER JOIN table_name2
ON table_name1.column = table_name2.column;

Arriba está el ejemplo de una unión interna. De la misma manera, también podemos aplicar otras uniones. En el ejemplo anterior, la vista se creará consolidando los registros que están presentes en table_name1 y table_name2 sobre la base de un campo común.

Ejemplos de vistas en MySQL

Consideremos el ejemplo anterior:

Identificación del cliente Nombre del cliente Contact_no Email Cantidad_comprada Ciudad
184 Ravi Kumar 9887463893 8000.00 Calcuta
987 Vinay Das 9839878678 12000.00 Delhi
452 K.Amarnath 7598759387 15000.00 Calcuta
874 Abhinash Desai 7675878798 5000, 00 Mumbai
987 Aseem Kumar 9697679867 18000.00 Chincheta
989 Sakti 9847984788 60000.00 Chincheta

Esta es la base de datos de la tabla del cliente.

Crearemos otra vista de él, nombrándolo como un cliente premium. Las condiciones para los clientes premium serán mientras que adquirido_cantidad será superior a 10000.

Consulta # 1

CREATE VIEW premium_customer AS
SELECT customer_id, customer_name, contact_no, purchased_amont, city
FROM customer
WHERE purchased_amont > 10000;

Salida:

Identificación del cliente Nombre del cliente Contact_no Cantidad_comprada Ciudad
987 Vinay Das 9839878678 12000.00 Delhi
452 K.Amarnath 7598759387 15000.00 Calcuta
987 Aseem Kumar 9697679867 18000.00 Chincheta
989 Sakti 9847984788 60000.00 Chincheta

Si queremos eliminar esta tabla virtual premium_customer, a continuación se muestra la sintaxis.

DROP VIEW premium_customer;

Si se requiere alguna modificación a esta tabla premium anterior modificando algunas condiciones, entonces

Consulta # 2

CREATE OR REPLACE VIEW premium_customer AS
SELECT customer_id, customer_name, contact_no, email, purchased_amont, city
FROM customer
WHERE purchased_amount > 6000;

Salida:

Identificación del cliente Nombre del cliente Contact_no Email Cantidad_comprada Ciudad
184 Ravi Kumar 9887463893 8000.00 Calcuta
987 Vinay Das 9839878678 12000.00 Delhi
452 K.Amarnath 7598759387 15000.00 Calcuta
987 Aseem Kumar 9697679867 18000.00 Chincheta
989 Sakti 9847984788 60000.00 Chincheta

Ventajas y desventajas de las vistas en MySQL

Aquí discutimos las ventajas y desventajas de Vistas en MySQL,

Ventajas

  • Seguridad: hay muchas tablas que están restringidas para muchos usuarios, ya que algunos atributos en esas tablas serán muy sensibles. Entonces, si podemos crear vistas con algunos atributos específicos para los usuarios respectivos, entonces los usuarios pueden tener permiso para acceder a un conjunto de vistas en una base de datos que les está autorizada. Esto puede mantener la seguridad e integridad de los datos, así como los usuarios pueden realizar sus tareas con las respectivas columnas autorizadas.
  • Simplicidad de consulta: se puede crear una vista recuperando datos de varias tablas. Por lo tanto, todos los registros acumulativos de todas las tablas se pueden representar mediante una sola tabla utilizando la consulta de vista.
  • Simplicidad estructural: podemos crear una vista especializada o personalizada específica del usuario. Por lo tanto, podemos representar la base de datos como un conjunto de tablas virtuales que tienen sentido para el usuario.
  • Consistencia: estamos mencionando la consistencia aquí porque esta vista puede representar una imagen consistente y sin cambios de la estructura de la base de datos, incluso si hacemos alguna manipulación a la tabla principal o la tabla maestra.
  • Integridad de los datos: si se accede a los datos a una vista, la base de datos siempre verifica los datos para asegurarse de que cumple o no las restricciones de integridad.

Desventajas

  • Rendimiento: las vistas son la tabla virtual o el representante de las tablas maestras. Cuando ejecutamos algunas consultas para crear una vista, DBMS traduce esas consultas a las vistas en las consultas en las tablas subyacentes. Por lo tanto, si la consulta de vista es muy compleja y contiene múltiples fuentes y algoritmos difíciles, la acción simple contra esas vistas lleva un tiempo considerable.
  • Restricciones de actualización: al cambiar filas en una vista, el DBMS debe traducir la solicitud en una actualización en las filas de la tabla fuente subyacente. La actualización se puede realizar en una consulta simple, pero en el caso de una consulta compleja, DBMS no permitirá la actualización ya que las vistas a menudo se limitan a solo lectura.

Conclusión

Después de pasar por lo descrito anteriormente, podemos conocer claramente el significado de este comando. Esto resulta útil en muchos escenarios en tiempo real. La principal ventaja de esto es que podemos realizar muchas consultas complejas solo para saber qué tan efectivo es nuestro algoritmo subyacente. Mantener la seguridad y la integridad de los datos es la ventaja clave del comando view.

Artículos recomendados

Esta es una guía de Vistas en MySQL. Aquí discutimos cómo crear vistas en mysql y entender cómo funcionan las diferentes opciones de vistas en MySQL. También puede consultar los siguientes artículos para obtener más información.

  1. Los 3 principales operadores de MySQL
  2. Comandos de consulta MySQL diferentes
  3. Los 6 principales comodines en MySQL
  4. ¿Cómo funciona el esquema MySQL?