Vistas en SQL Son una especie de mesa virtual. Una vista también tiene filas y columnas como tablas, pero una vista no almacena datos en el disco como una tabla. Ver define una consulta personalizada que recupera datos de una o más tablas y representa los datos como si vinieran de una única fuente.
Podemos crear una vista seleccionando campos de una o más tablas presentes en la base de datos. Una Vista puede tener todas las filas de una tabla o filas específicas según ciertas condiciones.
En este artículo, aprenderemos cómo crear, actualizar y eliminar vistas en SQL.
D base de datos emo SQL
Usaremos estos dos tablas SQL por ejemplo.
Detalles del estudiante

Marcas de estudiantes

Puede crear estas tablas en su sistema escribiendo la siguiente consulta SQL:
mysql -- Create StudentDetails table CREATE TABLE StudentDetails ( S_ID INT PRIMARY KEY, NAME VARCHAR(255), ADDRESS VARCHAR(255) ); INSERT INTO StudentDetails (S_ID, NAME, ADDRESS) VALUES (1, 'Harsh', 'Kolkata'), (2, 'Ashish', 'Durgapur'), (3, 'Pratik', 'Delhi'), (4, 'Dhanraj', 'Bihar'), (5, 'Ram', 'Rajasthan'); -- Create StudentMarks table CREATE TABLE StudentMarks ( ID INT PRIMARY KEY, NAME VARCHAR(255), Marks INT, Age INT ); INSERT INTO StudentMarks (ID, NAME, Marks, Age) VALUES (1, 'Harsh', 90, 19), (2, 'Suresh', 50, 20), (3, 'Pratik', 80, 19), (4, 'Dhanraj', 95, 21), (5, 'Ram', 85, 18);>
CREAR VISTAS en SQL
Podemos crear una vista usando CREAR VISTA declaración. Se puede crear una vista a partir de una sola tabla o de varias tablas.
Sintaxis
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parámetros:
- nombre_vista : Nombre de la vista
- nombre de la tabla : Nombre de la mesa
- condición : Condición para seleccionar filas
Ejemplos de declaraciones CREATE VIEW de SQL
Veamos algunos ejemplos de la declaración CREATE VIEW en SQL para comprender mejor cómo crear vistas en SQL.
Ejemplo 1: crear una vista a partir de una sola tabla
En este ejemplo, crearemos una Vista llamada DetallesView a partir de la tabla StudentDetails. Consulta:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Para ver los datos en la Vista, podemos consultar la vista de la misma manera que consultamos una tabla.
SELECT * FROM DetailsView;>
Producción:

Ejemplo 2: crear vista desde la tabla
En este ejemplo, crearemos una vista denominada StudentNames a partir de la tabla StudentDetails. Consulta:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Si ahora consultamos la vista como,
SELECT * FROM StudentNames;>
Producción:

Ejemplo 3: crear una vista a partir de varias tablas
En este ejemplo, crearemos una vista llamada MarksView a partir de dos tablas StudentDetails y StudentMarks. Para crear una Vista a partir de varias tablas, simplemente podemos incluir varias tablas en la instrucción SELECT. Consulta:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Para mostrar datos de Ver MarksView:
SELECT * FROM MarksView;>
Producción:

LISTA DE TODAS LAS VISTAS EN UNA BASE DE DATOS
Podemos listar Ver usando el MOSTRAR TABLAS COMPLETAS declaración o utilizando el tabla de esquema de información . Se puede crear una vista a partir de una sola tabla o de varias tablas.
Sintaxis
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Usando esquema_información
lista de usuarios de mysql
SELECT table_name FROM information_schema.views WHERE table_schema = 'database_name'; OR SELECT table_schema, table_name, view_definition FROM information_schema.views WHERE table_schema = 'database_name';>
ELIMINAR VISTAS en SQL
SQL nos permite eliminar una Vista existente. Podemos eliminar o soltar la Vista usando el declaración de caída .
Sintaxis
DROP VIEW view_name;>
Ejemplo
En este ejemplo, estamos eliminando la Vista Vista de marcas.
DROP VIEW MarksView;>
ACTUALIZAR VISTA en SQL
Si desea actualizar los datos existentes dentro de la vista, utilice el ACTUALIZAR declaración.
Sintaxis
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Nota: No todas las vistas se pueden actualizar mediante la instrucción UPDATE.
Si desea actualizar la definición de la vista sin afectar los datos, utilice el CREAR O REEMPLAZAR VISTA declaración. puedes usar esta sintaxis
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Reglas para actualizar vistas en SQL:
Es necesario cumplir ciertas condiciones para actualizar una vista. Si alguna de estas condiciones es no cumple, la vista no se puede actualizar.
- La instrucción SELECT que se utiliza para crear la vista no debe incluir la cláusula GROUP BY ni la cláusula ORDER BY.
- La declaración SELECT no debe tener la palabra clave DISTINCT.
- La Vista debe tener todos los valores NO NULOS.
- La vista no debe crearse mediante consultas anidadas o consultas complejas.
- La vista debe crearse a partir de una única tabla. Si la vista se crea utilizando varias tablas, no podremos actualizar la vista.
Ejemplos
Veamos diferentes casos de uso para actualizar una vista en SQL. Cubriremos estos casos de uso con ejemplos para comprenderlos mejor.
Ejemplo 1: Actualizar vista para agregar o reemplazar un campo de vista
Podemos usar el CREAR O REEMPLAZAR VISTA declaración para agregar o reemplazar campos de una vista.
Si queremos actualizar la vista MarcasVer y agregue el campo EDAD a esta Vista desde Marcas de estudiantes Tabla, podemos hacer esto mediante:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Si recuperamos todos los datos de MarksView ahora como:
SELECT * FROM MarksView;>
Producción:

Ejemplo 2: Actualizar vista para insertar una fila en una vista
Podemos insertar una fila en una Vista de la misma forma que lo hacemos en una tabla. Podemos usar el INSERTAR EN declaración de SQL para insertar una fila en una Vista.
En el siguiente ejemplo, insertaremos una nueva fila en Ver DetallesVista que hemos creado anteriormente en el ejemplo de creación de vistas a partir de una sola tabla.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Si recuperamos todos los datos de DetailsView ahora como,
SELECT * FROM DetailsView;>
Producción:

Ejemplo 3: eliminar una fila de una vista
Eliminar filas de una vista también es tan sencillo como eliminar filas de una tabla. Podemos usar la declaración DELETE de SQL para eliminar filas de una vista. Además, al eliminar una fila de una vista, primero se elimina la fila de la tabla real y luego el cambio se refleja en la vista.
En este ejemplo, eliminaremos la última fila de la vista DetallesView que acabamos de agregar en el ejemplo anterior de inserción de filas.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Si recuperamos todos los datos de DetailsView ahora como,
SELECT * FROM DetailsView;>
Producción:

CON Cláusula OPCIÓN DE CHEQUE
El CON OPCIÓN DE CHEQUE La cláusula en SQL es una cláusula muy útil para las vistas. Se aplica a una vista actualizable.
La cláusula FROM CHECK OPTION se usa para evitar la modificación de datos (usando INSERT o UPDATE) si no se cumple la condición en la cláusula WHERE en la declaración CREATE VIEW.
Si hemos utilizado la cláusula CON CHECK OPTION en la sentencia CREATE VIEW, y si la cláusula UPDATE o INSERT no cumple las condiciones entonces devolverán un error.
CON OPCIÓN DE VERIFICACIÓN Ejemplo de cláusula:
En el siguiente ejemplo, estamos creando una vista de muestra a partir de la tabla StudentDetails con una cláusula FROM CHECK OPTION.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
En esta vista, si ahora intentamos insertar una nueva fila con un valor nulo en la columna NOMBRE, se producirá un error porque la vista se creó con la condición para la columna NOMBRE como NO NULA. Por ejemplo, aunque la Vista se puede actualizar, la siguiente consulta para esta Vista tampoco es válida:
tamaños de fuente de látex
INSERT INTO SampleView(S_ID) VALUES (6);>
NOTA : El valor predeterminado de la columna NOMBRE es nulo .
Usos de una vista
Una buena base de datos debe contener vistas por los motivos indicados:
- Restringir el acceso a los datos – Las vistas proporcionan un nivel adicional de seguridad de la tabla al restringir el acceso a un conjunto predeterminado de filas y columnas de una tabla.
- Ocultar la complejidad de los datos – Una vista puede ocultar la complejidad que existe en varias tablas unidas.
- Simplifique los comandos para el usuario – Las vistas permiten al usuario seleccionar información de varias tablas sin necesidad de que los usuarios sepan realmente cómo realizar una unión.
- Almacenar consultas complejas – Las vistas se pueden utilizar para almacenar consultas complejas.
- Cambiar el nombre de las columnas – Las vistas también se pueden usar para cambiar el nombre de las columnas sin afectar las tablas base, siempre que el número de columnas a la vista debe coincidir con el número de columnas especificadas en una declaración de selección. Por tanto, cambiar el nombre ayuda a ocultar los nombres de las columnas de las tablas base.
- Instalación de vista múltiple – Se pueden crear diferentes vistas en la misma tabla para diferentes usuarios.
Conclusiones clave sobre las vistas SQL
- Las vistas en SQL son una especie de tabla virtual.
- Los campos de una vista pueden ser de una o varias tablas.
- Podemos crear una vista usando la declaración CREATE VIEW y eliminar una vista usando la declaración DROP VIEW.
- Podemos actualizar una vista usando la declaración CREATE OR REPLACE VIEW.
- La cláusula FROM CHECK OPTION se utiliza para evitar la inserción de nuevas filas que no cumplan con la condición de filtrado de la vista.