MySQL Views: How to Create View from Tables

โšก Resumen inteligente

MySQL Views are virtual tables that store no data of their own and instead present the result of a stored SELECT query. This resource explains how to create, query, join, and drop views, with runnable examples from the myflixdb database.

  • ๐Ÿงฑ Definiciรณn bรกsica: A view is a named SELECT statement that behaves like a table but holds no data.
  • ๐Ÿ” Beneficio de seguridad: Views expose only the authorized columns and keep sensitive fields hidden from users.
  • โ™ป๏ธ Reusability Benefit: A complex multi-table JOIN is written once and reused as a single-line SELECT.
  • ๐Ÿ› ๏ธ Creation Syntax: CREATE VIEW `view_name` AS SELECT statement defines the view inside the database.
  • ๐Ÿ—‘๏ธ Lifecycle Commands: SHOW CREATE VIEW reveals the stored query, and DROP VIEW deletes it without touching the base tables.

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?

Before building one, it helps to know what a view actually buys you.

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

  • Ultimately, you will use your SQL knowledge, to create applications, which will use a database for data requirements. Itโ€™s recommended that you use VIEWS of the original table structure in your application instead of using the tables themselves. This ensures that when you refactor your DB, your legacy code will see the original schema via the view without breaking the application.
  • 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

With the syntax and the benefits established, the steps below build a working view end to end.

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.

Suppose authorization requirements state that the accounts department can only see memberโ€™s number, name and gender from the memberโ€™s table. To achieve this you can create a VIEW โ€“

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

Only the authorized columns for accounts department have been returned. Other details found in the members table have been hidden.

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

A single-table view is the simplest case. Views become far more valuable when they wrap a multi-table query.

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 a view removes only the stored query; the underlying tables and their data are untouched.

Preguntas Frecuentes

Sometimes. INSERT, UPDATE and DELETE work only on simple views containing every NOT NULL column of the base table. Views built on joins or aggregate functions are not updatable.

A table physically stores rows on disk. A view stores only a SELECT statement and rebuilds its rows on every query, so it always reflects current data in the base tables.

No. A view runs its underlying SELECT on every call, so performance matches the original query. MySQL has no materialized views, and speed still depends on base-table indexes.

Yes. AI assistants in tools such as MySQL Banco de trabajo can draft a CREATE VIEW statement from a description. Verify the column list and join keys before running it.

Partly. AI can flag sensitive columns, such as card numbers, and propose a safer column list. The final decision must still follow your organisationโ€™s data access policy.

Resumir este post con: