mysql create view tutorial with code examples
Este tutorial de creación de vistas de MySQL explica todo sobre la creación de una vista en MySQL utilizando diferentes cláusulas y ejemplos. También cubre cómo soltar y administrar vistas:
En MySQL, view es una tabla virtual que nos permite echar un vistazo a los datos de la tabla sin bloquear el acceso de otros programas a la tabla y, por lo tanto, nos ayuda a evitar situaciones de interbloqueo.
Las vistas se crean sobre una o más de una tabla que contiene datos. Antes de continuar, tenga en cuenta que estamos utilizando MySQL versión 8.0 .
Lo que vas a aprender:
Vista de creación de MySQL
Sintaxis:
|_+_|Explicación de la sintaxis:
- La sintaxis comienza con la palabra clave “CREATE VIEW”, informando así al servidor MySQL sobre el tipo de actividad a realizar. Esta es una palabra clave obligatoria y no se puede omitir.
- REPLACE es un parámetro opcional. Podemos usar esto mientras trabajamos en una vista existente.
- Luego viene el nombre de la vista. Debe ser único al igual que los nombres de tablas y columnas.
- Luego, seleccione las columnas de la tabla. Una vista puede tener todas las columnas de la tabla subyacente o solo algunas seleccionadas.
- Luego viene el nombre de la tabla en la que se debe realizar la vista. Esto es obligatorio y no se puede omitir.
- Luego viene la condición DONDE, que restringe o filtra el número de filas de destino en las que se debe aplicar la acción CREAR VISTA. WHERE también es una palabra clave, pero opcional.
Sin embargo, la cláusula WHERE es significativa. Si no se menciona, o si la condición no está configurada correctamente, la tabla completa o las filas no requeridas serán parte de la vista.
Ejemplo de creación de vista de MySQL
A continuación se muestra una tabla de muestra creada en MYSQL.
Nombre de esquema: Pacífico
Nombre de la tabla: empleados
Nombres de columna:
empNum : Contiene valores enteros para el número de empleado.
apellido : Contiene valores varchar para el apellido del empleado.
nombre de pila : Contiene valores varchar para el nombre del empleado.
Email : Contiene valores varchar para el ID de correo electrónico del empleado.
deptNum : Contiene varchar para el ID de departamento al que pertenece un empleado.
salario : Contiene valores decimales de salario para cada empleado.
fecha de inicio : Contiene valores de fecha para la fecha de incorporación del empleado.

Nombre de esquema: Pacífico
Nombre de la tabla: departamentos
Nombres de columna:
deptNum; Contiene varchar para el ID de departamento dentro de una organización.
ciudad: Contiene el nombre de la ciudad desde la que trabajan los departamentos.
país: Contiene el nombre del país correspondiente a la ciudad.
prima Mantiene el valor porcentual del bono.

MySQL Simple Crear una vista
Ahora creemos una vista en la parte superior de la tabla anterior.
A continuación se muestra la consulta.

La cláusula SELECT puede tener nombres de columna específicos o podemos usar “*” para obtener todas las columnas. Una vez que creamos una vista, no podemos agregar ni eliminar las columnas. Si queremos agregar o eliminar columnas, entonces tendremos que crear una nueva vista o reemplazar esta vista existente.
La declaración de salida muestra que las declaraciones SQL CREATE VIEW se han ejecutado correctamente. También dice que ninguna fila se ha visto afectada. Esto implica que cuando se crea una nueva fila, no afecta a los datos de la tabla subyacente.
Ahora consultemos la vista.

Consulta:
|_+_|Conjunto resultante:
| empNum | apellido | nombre de pila | deptNum | salario | fecha de inicio | |
|---|---|---|---|---|---|---|
| 1008 | Muralla exterior | Oliver | oliver.bailey@gmail.com | 3 | 24494.4 | 0001-01-01 |
| 1001 | Andrews | Jacobo | ja@gmail.com | 1 | 3182.7 | 0001-01-01 |
| 1002 | Schwatz | Miguel | ms@gmail.com | 1 | 5304.5 | 0001-01-01 |
| 1003 | Langley | Margaret | margaret.langley@gmail.com | 2 | 8820 | 0001-01-01 |
| 1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
| 1005 | Lee | Pedro | pl@gmail.com | 2 | 14332.5 | 0001-01-01 |
| 1006 | Keith | Jenny | jk@gmail.com | 2 | 16537.5 | 0001-01-01 |
| 1009 | taza | Harry | hb@gmail.com | 5 | 30645.6 | 0001-01-01 |
| 1011 | Hanks | Tomás | th@gmail.com | NULO | 10100 | 0001-01-01 |
| 1012 | Lutero | Martín | ml@gmail.com | 3 | 13000 | 0001-01-01 |
| 1014 | Murray | Keith | km@gmail.com | 1 | 25000 | 0001-01-01 |
| 1015 | Branson | John | jb@gmail.com | 2 | 15000 | 0001-01-01 |
| 1016 | Martín | Ricardo | rm@gmail.com | 4 | 5000 | 0001-01-01 |
| 1017 | Johnson | víspera | ej@gmail.com | 3 | 5500 | 2019-11-25 |
| 1018 | Vínculo | Nolan | nb@gmail.com | 2 | 15000 | 2019-09-13 |
Crear vista usando GROUP BY y ORDER BY
Supongamos un escenario en el que necesitamos obtener la cantidad total de salario, por departamento.
A continuación se muestra la consulta:

En lugar de ejecutar esta consulta en la tabla cada vez, necesitamos la información, es mejor consultar la vista ya que esto consumirá menos fuentes de base de datos.
Ahora, veamos el contenido de nuestra vista. Encontraremos cuánto está enviando cada departamento a sus empleados en términos de salarios.

Consulta:
|_+_|Conjunto resultante:
| deptNum | suma (salario) | |||||
|---|---|---|---|---|---|---|
| 1006 | Keith | Jenny | 2 | Charlotte | Estados Unidos | 5 |
| 5 | 30645.6 | |||||
| 4 | 5000 | |||||
| 3 | 42994.4 | |||||
| 2 | 69690 | |||||
| 1 | 44096.2 | |||||
| NULO | 10100 |
El NULL en deptNum indica que un empleado no es parte de ningún departamento pero está en las nóminas de la organización.
MySQL Create View usando JOIN
Supongamos que queremos obtener datos sobre el departamento, la ciudad en la que se encuentra y la bonificación que se ofrece a sus empleados. Necesitamos esta información para todos los empleados.
Para lograr esto, usaremos la palabra clave JOIN para obtener datos de la tabla de departamentos y empleados.
Echemos un vistazo a la consulta y su resultado.

Podemos usar diferentes tipos de JOIN aquí, como INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN o FULL OUTER JOIN dependiendo de nuestros requisitos.
Consulta:
|_+_|Ejecutemos ahora una consulta SELECT en esta vista para ver el resultado:

Conjunto resultante:
| empNum | apellido | nombre de pila | deptNum | ciudad | país | prima |
|---|---|---|---|---|---|---|
| 1001 | Andrews | Jacobo | 1 | Nueva York | Estados Unidos | 3 |
| 1002 | Schwatz | Miguel | 1 | Nueva York | Estados Unidos | 3 |
| 1004 | Harera | Sandra | 1 | Nueva York | Estados Unidos | 3 |
| 1014 | Murray | Keith | 1 | Nueva York | Estados Unidos | 3 |
| 1003 | Langley | Margaret | 2 | Charlotte | Estados Unidos | 5 |
| 1005 | Lee | Pedro | 2 | Charlotte | Estados Unidos | 5 |
| 1015 | Branson | John | 2 | Charlotte | Estados Unidos | 5 |
| 1018 | Vínculo | Nolan | 2 | Charlotte | Estados Unidos | 5 |
| 1008 | Muralla exterior | Oliver | 3 | Chicago | Estados Unidos | 8 |
| 1012 | Lutero | Martín | 3 | Chicago | Estados Unidos | 8 |
| 1017 | Johnson | víspera | 3 | Chicago | Estados Unidos | 8 |
| 1016 | Martín | Ricardo | 4 | Londres | Inglaterra | 10 |
| 1009 | taza | Harry | 5 | Berlina | Alemania | 13 |
Crear vista usando subconsulta
En este tipo de declaración de creación de vista, intentamos obtener el valor de una columna donde la cláusula se basa en la salida de una subconsulta. Digamos, tenemos que encontrar a todos aquellos empleados cuyo salario sea mayor que el salario promedio de la organización.
Veamos la consulta:


Consulta:
|_+_|Conjunto resultante:
| empNum | apellido | nombre de pila | salario |
|---|---|---|---|
| 1018 | Vínculo | Nolan | 15000 |
| 1005 | Lee | Pedro | 14332.5 |
| 1006 | Keith | Jenny | 16537.5 |
| 1008 | Muralla exterior | Oliver | 24494.4 |
| 1009 | taza | Harry | 30645.6 |
| 1014 | Murray | Keith | 25000 |
| 1015 | Branson | John | 15000 |
Administrar vistas
Al usar Alter View o Create / Replace view podemos modificar / reemplazar cualquier vista. El uso de ALTER VIEW explícitamente para recompilar una vista no es válido.
Si tiene privilegios de sistema ALTER ANY Table o si la vista está en su esquema, puede usar la instrucción ALTER VIEW.
mejor descifrador de dvd para windows 10
Al usar la consulta Alter View, podemos localizar los errores de recompilación antes del tiempo de ejecución. El uso de la instrucción ALTER VIEW puede afectar al otro objeto / vista que depende de él. Por lo tanto, podemos volver a compilar una vista después de modificar.
Podemos redefinir una vista usando Crear vista y podemos reemplazar la vista existente por la consulta Reemplazar vista.
Por ejemplo, considere la vista_empleados. Aquí tenemos las columnas lastName y firstName junto con algunas otras. Considere que tenemos el requisito de fusionar las columnas firstName y lastName.
A continuación se muestra la instantánea de la vista antes de ejecutar la consulta ALTER.

Ahora ejecutemos la consulta ALTER VIEW para fusionar el nombre y apellido.
La consulta se da a continuación:

Consulta:
|_+_|Veamos ahora el contenido de la vista de empleados:

Si puede notarlo, no tenemos dos columnas separadas para los nombres. En su lugar, solo tenemos una columna que tiene el nombre y el apellido concatenados.
Más información = >> Función CONCAT de MySQL
Consulta:
|_+_|Conjunto resultante:
| empNum | empName | deptNum | salario | fecha de inicio | |
|---|---|---|---|---|---|
| 1008 | Oliver Bailey | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
| 1001 | Jack Andrews | ja@gmail.com | 1 | 3182.7 | 0001-01-01 |
| 1002 | Mike Schwatz | ms@gmail.com | 1 | 5304.5 | 0001-01-01 |
| 1003 | Margaret Langley | margaret.langley@gmail.com | 2 | 8820 | 0001-01-01 |
| 1004 | Sandra harera | sh@gmail.com | 1 | 10609 | 0001-01-01 |
| 1005 | Peter Lee | pl@gmail.com | 2 | 14333 | 0001-01-01 |
| 1006 | Jenny Keith | jk@gmail.com | 2 | 16538 | 0001-01-01 |
| 1009 | Harry Beaker | hb@gmail.com | 5 | 30646 | 0001-01-01 |
| 1011 | Tom Hanks | th@gmail.com | 10100 | 0001-01-01 | |
| 1012 | Martin lutero | ml@gmail.com | 3 | 13000 | 0001-01-01 |
| 1014 | Keith Murray | km@gmail.com | 1 | 25000 | 0001-01-01 |
| 1015 | John Branson | jb@gmail.com | 2 | 15000 | 0001-01-01 |
| 1016 | Richard Martin | rm@gmail.com | 4 | 5000 | 0001-01-01 |
| 1017 | Eve Johnson | ej@gmail.com | 3 | 5500 | 2019-11-25 |
| 1018 | Nolan Bond | nb@gmail.com | 2 | 15000 | 2019-09-13 |
Dejar caer una vista
Podemos eliminar una vista usando la instrucción DROP VIEW. Uno puede usar DROP VIEW si tiene DROP CUALQUIER privilegio de vista o de lo contrario debería estar en su esquema. La vista caída no afecta a la tabla subyacente en la que se ha creado la vista ni a los datos de esa tabla.
Consulta:
|_+_| 
Preguntas frecuentes
P # 1) ¿Cómo crear vistas en MySQL?
Responder: Hay varias formas de crear vistas en MySQL. Hemos pasado por cuatro formas diferentes como se muestra a continuación.
1. MySQL Simple Crear una vista
2. MySQL Create View usando GROUP BY y ORDER BY
3. MySQL Create View usando JOIN
4. MySQL Crear vista usando subconsultas
Q #2) ¿Qué es una vista en MySQL?
Responder: Las vistas son como consultas preejecutadas almacenadas en una estructura lógica para que no tengamos que volver a ejecutar las consultas complejas en la mesa. Podemos simplemente consultar la vista y obtener nuestros datos sin afectar la tabla.
Q #3) ¿Podemos aplicar JOIN en las vistas mientras creamos vistas?
Responder: Sí, las declaraciones JOIN podrían usarse en vistas, de una manera similar a como lo usamos en las tablas.
Q #4) ¿Podemos crear una vista desde otra vista?
Responder: Las vistas actúan esencialmente como tablas, pero como una virtual. Por lo tanto, la forma en que creamos vistas en la parte superior de una tabla, también podemos crear vistas en la parte superior de otra vista.
Q #5) ¿Por qué usamos vistas?
Responder: Como resultado de la consulta SQL, la vista crea una tabla lógica. Usamos vistas por las siguientes razones.
- Al usar la vista, podemos limitar la visibilidad de filas y columnas (usando la cláusula Seleccionar y Dónde) para las tareas relevantes.
- Las vistas se usan cuando combinamos filas y columnas (usando Unión y Unir) de varias tablas.
- Para obtener una presentación más distinta de la agregación de filas (usando Agrupar por y Tener) en una tabla con detalles más finos.
- Las vistas se utilizan al cambiar el nombre o decodificar columnas (usando AS) o filas (usando JOIN, IF, CASE o DECODE de Oracle).
- Combinando cualquiera de los anteriores con la configuración de seguridad, podemos verificar si el usuario tiene acceso solo a lo que está autorizado.
Conclusión
En este tutorial, exploramos las diferentes formas de crear una vista en MySQL.
1. MySQL Simple Crear una vista
2. MySQL Create View usando GROUP BY y ORDER BY
3. MySQL Create View usando JOIN
4. MySQL Crear vista usando subconsultas
Podemos elegir cualquiera de estas opciones dependiendo de los requisitos del proyecto.
Más lecturas = >> MySQL CREAR TABLA
¡¡Feliz aprendizaje!!
Lectura recomendada
- MySQL ALTER TABLE - Cómo agregar una columna a una tabla en MySQL
- Funciones MySQL CONCAT y GROUP_CONCAT con ejemplos
- CONTEO Y CONTEO DISTINTOS DE MySQL con ejemplos
- MySQL Create Database: cómo crear una base de datos en MySQL
- MySQL CREAR USUARIO: Cómo crear un nuevo usuario en MySQL
- Tutorial de creación de vistas de MySQL con ejemplos de código
- Cláusula GROUP BY de MySQL - Tutorial con ejemplos
- Tutorial JOIN de MySQL: interno, externo, cruzado, izquierdo, derecho y propio