logo

Vistas SQL

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

Estudiante de mesa

Marcas de estudiantes

Tabla de calificaciones de los 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:

crear ejemplos de vista

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:

ver salida

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:

ver salida

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.

  1. 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.
  2. La declaración SELECT no debe tener la palabra clave DISTINCT.
  3. La Vista debe tener todos los valores NO NULOS.
  4. La vista no debe crearse mediante consultas anidadas o consultas complejas.
  5. 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:

crear o reemplazar vista de ejemplo

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:

insertar fila en el ejemplo de vista

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:

eliminar fila de la vista ejemplo

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:

  1. 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.
  2. Ocultar la complejidad de los datos – Una vista puede ocultar la complejidad que existe en varias tablas unidas.
  3. 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.
  4. Almacenar consultas complejas – Las vistas se pueden utilizar para almacenar consultas complejas.
  5. 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.
  6. 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.