MySQL Vistas: Cómo crear vistas a partir de tablas

⚡ Resumen inteligente

MySQL Las vistas son tablas virtuales que no almacenan datos propios, sino que presentan el resultado de una consulta SELECT almacenada. Este recurso explica cómo crear, consultar, unir y eliminar vistas, con ejemplos prácticos de la base de datos myflixdb.

  • 🧱 Definición básica: Una vista es una instrucción SELECT con nombre que se comporta como una tabla pero no contiene datos.
  • 🔐 Beneficio de seguridad: Las vistas solo muestran las columnas autorizadas y mantienen ocultos los campos confidenciales para los usuarios.
  • ♻️ Beneficio de la reutilización: Una operación JOIN compleja que involucra varias tablas se escribe una sola vez y se reutiliza como una consulta SELECT de una sola línea.
  • 🛠️ Sintaxis de creación: La instrucción CREATE VIEW `view_name` AS SELECT define la vista dentro de la base de datos.
  • 🗑️ Comandos del ciclo de vida: SHOW CREATE VIEW muestra la consulta almacenada, y DROP VIEW la elimina sin modificar las tablas base.

MySQL Vistas

¿Qué son las vistas en MySQL?

PUNTOS DE VISTA Son tablas virtuales que no almacenan ningún dato propio, pero muestran datos almacenados en otras tablas. En otras palabras, las VISTAS no son más que consultas SQL. Una vista puede contener todas o algunas filas de una tabla. A MySQL La vista puede mostrar datos de una tabla o de muchas tablas.

MySQL Sintaxis de vistas

Veamos ahora la sintaxis básica utilizada para crear una vista en MySQL.

CREATE VIEW `view_name` AS SELECT statement;

Dónde

  • “CREAR VISTA `nombre_vista`” decirles MySQL servidor para crear un objeto de vista en la base de datos llamado `view_name`
  • “Declaración AS SELECT” son las declaraciones SQL que se empaquetarán en el MySQL Puntos de vista. Puede ser una declaración SELECT que puede contener datos de una tabla o de varias tablas.

¿Por qué utilizar vistas?

Antes de construir una, conviene saber qué beneficios reales aporta una buena vista.

Es posible que desees utilizar vistas principalmente por las siguientes 3 razones

  • En última instancia, utilizarás tu SQL Se requiere conocimiento para crear aplicaciones que utilicen una base de datos para sus necesidades de datos. Se recomienda usar vistas de la estructura de tabla original en lugar de las tablas directamente. Esto garantiza que, al refactorizar la base de datos, el código heredado podrá acceder al esquema original a través de la vista sin que la aplicación se vea afectada.
  • VIEWS aumenta la reutilización. No tendrá que crear consultas complejas que impliquen uniones repetidamente. Toda la complejidad se convierte en una sola línea de consulta que utiliza VIEWS. Este código condensado será más fácil de integrar en su aplicación. Esto eliminará las posibilidades de errores tipográficos y su código será más legible.
  • Las vistas ayudan a proteger los datos. Puede usar las vistas para mostrar solo información autorizada a los usuarios y ocultar datos confidenciales como números de tarjetas de crédito.

Cómo crear vistas en MySQL

Una vez establecidas la sintaxis y las ventajas, los pasos que se describen a continuación permiten crear una vista funcional de principio a fin.

A continuación se muestra un proceso paso a paso para crear una vista en MySQL:

Paso 1) Crea nuestra primera vista usando “myflixdb”

Ahora creemos nuestra primera vista usando "myflixdb". Crearemos una vista simple que restringe las columnas que se ven en la tabla de miembros.

Supongamos que los requisitos de autorización establecen que el departamento de contabilidad solo puede ver el número, el nombre y el género del miembro de la tabla de miembros. Para lograr esto, puede crear una VISTA.

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

Paso 2) Expandiendo el nodo de vistas

Ejecutando el script anterior en MySQL El banco de trabajo contra myflixdb y la expansión del nodo de vistas en el explorador de bases de datos nos dan los siguientes resultados.

Crear vistas en MySQL

Tenga en cuenta que el objeto cuentas_v_miembros ahora es visible en los objetos de vistas de la base de datos.

Paso 3) Ejecutar una declaración SELECT

Ahora ejecutemos un Instrucción SELECT que selecciona todos los campos de la vista como se muestra a continuación MySQL crear vista de ejemplo.

SELECT * FROM `accounts_v_members`;

Paso 4) Ejecutar un script

Ejecutando el script anterior en MySQL El banco de trabajo contra myflixdb nos da los siguientes resultados que se muestran a continuación.

membership_number full_names gender
1 Janet Jones Female
2 Janet Smith Jones Female
3 Robert Phil Male
4 Gloria Williams Female
5 Leonard Hofstadter Male
6 Sheldon Cooper Male
7 Rajesh Koothrappali Male
8 Leslie Winkle Male
9 Howard Wolowitz Male

Solo se han devuelto las columnas autorizadas para el departamento de contabilidad. Los demás detalles que se encuentran en la tabla de miembros se han ocultado.

Si queremos ver las declaraciones SQL que componen una vista particular, podemos usar el script que se muestra a continuación para hacerlo.

SHOW CREATE VIEW `accounts_v_members`;

La ejecución del script anterior le proporciona el nombre de la vista y las declaraciones SQL SELECT utilizadas para crear la vista.

Uniones y vistas en MySQL

Una vista de una sola tabla es el caso más sencillo. Las vistas adquieren mucho más valor cuando encapsulan una consulta de varias tablas.

Veamos ahora un ejemplo bastante complejo que involucra múltiples tablas y usos. une.

Empaquetaremos el JOIN creado que obtiene información de tres (3) tablas, a saber, miembros, películas y alquiler de películas. A continuación se muestra el script que nos ayuda a lograrlo.

CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date`
FROM `movierentals` AS mr
INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number`
INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;

La ejecución de los scripts anteriores crea la vista denominada general_v_movie_rentals en nuestro myflixdb

Ahora seleccionemos todos los campos de una tabla llamada general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Ejecutando el script anterior en MySQL banco de trabajo contra myflixdb nos da los siguientes resultados que se muestran a continuación.

membership_number full_names title transaction_date return_date
1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012
1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012
3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012
2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012
3 Robert Phil X-Men 23-06-2012 28-06-2012

Tenga en cuenta que no tuvimos que escribir la consulta JOIN compleja para obtener información sobre miembros, películas y detalles de alquiler de películas. Simplemente usamos la vista en una declaración SELECT normal como cualquier otra tabla común. La vista se puede llamar desde cualquier parte del sistema de aplicación que se ejecuta sobre myflixdb.

Necesarioping Vistas en MySQL

El comando DROP se puede utilizar para eliminar una vista del base de datos de CRISPR Medicine News eso ya no es necesario. La sintaxis básica para eliminar una vista es la siguiente.

DROP VIEW `general_v_movie_rentals`;

Necesarioping Una vista elimina únicamente la consulta almacenada; las tablas subyacentes y sus datos permanecen intactos.

Preguntas Frecuentes

A veces, las operaciones INSERTAR, ACTUALIZAR y ELIMINAR solo funcionan en vistas simples que contienen todas las columnas que NO son nulas de la tabla base. Las vistas creadas mediante uniones o funciones de agregación no se pueden actualizar.

Una tabla almacena físicamente las filas en el disco. Una vista solo almacena una instrucción SELECT y reconstruye sus filas en cada consulta, por lo que siempre refleja los datos actuales de las tablas base.

No. Una vista ejecuta su consulta SELECT subyacente en cada llamada, por lo que el rendimiento coincide con el de la consulta original. MySQL No tiene vistas materializadas y la velocidad aún depende de los índices de la tabla base.

Sí. Asistentes de IA en herramientas como MySQL Banco de trabajo Se puede redactar una instrucción CREATE VIEW a partir de una descripción. Verifique la lista de columnas y las claves de unión antes de ejecutarla.

En parte. La IA puede identificar columnas sensibles, como los números de tarjeta, y proponer una lista de columnas más seguras. La decisión final debe ajustarse a la política de acceso a datos de su organización.

Resumir este post con: