¿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_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 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_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 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.