Cómo crear una vista a partir de tablas con ejemplos

¿Qué son las vistas en MySQL?

COMENTARIOS son tablas virtuales que no almacenan datos propios, pero muestran datos almacenados en otras tablas. Es decir, VIEWS son solo consultas SQL. Puede ser una escena de todas o algunas filas de una tabla. La vista MySQL puede mostrar datos de una sola tabla o de varias tablas.

Sintaxis visual de MySQL

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

CREATE VIEW `view_name` AS SELECT statement;

DÓNDE

  • «CREATE VIEW` view_name`» le dice a su servidor MySQL que cree un objeto de vista en la base de datos llamado `view_name`
  • «Instrucción AS SELECT» si las sentencias SQL se empaquetarán en las Vistas MySQL. Puede estar en una instrucción SELECT, puede contener datos de una tabla o de varias tablas.

Cómo crear escenas en MySQL

El siguiente es un proceso paso a paso para crear vistas en MySQL:

Ahora creamos nuestra primera vista usando «myflixdb», creamos una vista simple que restringe las columnas que se ven en la tabla de miembros.

Suponga que los requisitos de autorización establecen que el departamento de cuentas solo puede ver el número, el nombre y el sexo del miembro en 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`;

Ejecutar el script anterior en un banco de trabajo MySQL contra myflixdb y expandir el nodo de comentarios en el explorador de la base de datos nos da los siguientes resultados.

Tenga en cuenta que el objeto account_v_members ahora está visible en lo que ve la base de datos. Ahora ejecutemos una instrucción SELECT que seleccione todos los campos de la vista como se muestra en MySQL a continuación para crear un ejemplo de vista.

SELECT * FROM `accounts_v_members`;

La ejecución del script anterior en un banco de trabajo MySQL contra myflixdb da los siguientes resultados que se muestran a continuación.

membership_numberfull_namesgender
1Janet JonesFemale
2Janet Smith JonesFemale
3Robert PhilMale
4Gloria WilliamsFemale
5Leonard HofstadterMale
6Sheldon CooperMale
7Rajesh KoothrappaliMale
8Leslie WinkleMale
9Howard WolowitzMale

Solo se han devuelto las columnas autorizadas para la sección de la cuenta. Otros datos encontrados en la tabla de miembros están ocultos.

Si queremos ver las sentencias SQL que contienen una vista en 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 proporciona el nombre de la vista y las instrucciones SQL SELECT utilizadas para crear la escena.

Registro y vistas en MySQL

Veamos ahora un ejemplo bastante complejo que contiene varias tablas y usa uniones.

Empaquetaremos el JOIN probado que recibe información de tres (3) mesas, a saber, miembros, películas y películas de alquiler. A continuación se muestra el guión 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 llamada 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`;

Ejecute el script anterior en Banco de trabajo MySQL contra myflixdb, se nos dan los siguientes resultados que se muestran a continuación.

membership_numberfull_namestitletransaction_datereturn_date
1Janet JonesPirates of the Caribean 420-06-201228-06-2012
1Janet JonesForgetting Sarah Marshal22-06-201225-06-2012
3Robert PhilForgetting Sarah Marshal22-06-201225-06-2012
2Janet Smith JonesForgetting Sarah Marshal21-06-201224-06-2012
3Robert PhilX-Men23-06-201228-06-2012

Tenga en cuenta que no necesitamos escribir la compleja consulta JOIN para obtener información sobre miembros, películas y detalles de alquiler de películas. Solo usamos la vista en una instrucción SELECT regular como otra tabla normal. Se puede llamar a la escena desde cualquier lugar del sistema de aplicación que se ejecuta sobre myflixdb.

Escenas eliminadas en MySQL

El comando DROP se puede utilizar para eliminar una escena de la base de datos que ya no es necesaria. La siguiente es la sintaxis básica para salir de una escena.

DROP VIEW ` general_v_movie_rentals `;

¿Por qué utilizar comentarios?

Es posible que desee utilizar comentarios principalmente por las siguientes 3 razones

  • En última instancia, utilizará su SQL conocimiento, para crear aplicaciones, que utilizarán una base de datos para las necesidades de datos. Se recomienda que use VIEWS de la estructura de tabla básica en su aplicación en lugar de usar las tablas en sí. Esto asegura que cuando reactive su SS, su código heredado verá el esquema original a través de la vista sin interrumpir la aplicación.
  • Aumenta la VISTA reutilizable. No tendrá que crear preguntas complejas que involucren articulaciones repetidas. Toda la complejidad se convierte en una sola línea de consultas de uso de VIEWS. Será más fácil integrar dicho código consolidado en su aplicación. Esto eliminará las posibilidades de errores tipográficos y hará que su código sea más legible.
  • VIEWS ayuda con la seguridad de los datos. Puede usar escenas para mostrar a los usuarios solo información autorizada y ocultar datos confidenciales como números de tarjetas de crédito.

Resumen

  • Las escenas son mesas virtuales; no contienen los datos devueltos. Los datos se almacenan en las tablas a las que se hace referencia en la instrucción SELECT.
  • Las vistas mejoran la seguridad de la base de datos al mostrar los datos previstos solo a los usuarios autorizados. Incluyen datos sensibles.
  • Las escenas te facilitan la vida porque no tienes preguntas complicadas una y otra vez.
  • INSERT, UPDATE y DELETE se pueden utilizar en VIEW. Estas operaciones reemplazarán las tablas VIEW básicas. La única consideración es que cada columna debe ser NOT NULL de las tablas a las que hace referencia en VIEW. Idealmente, no debería usar VIEWS para actualizar.

Deja un comentario

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