SQL Vistas
Una vista es una tabla visual.
Este capítulo explica cómo crear, actualizar y eliminar vistas.
Sentencia SQL CREATE VIEW
En SQL, una vista es una tabla visual basada en el conjunto de resultados de una sentencia SQL.
Una vista contiene filas y columnas, como una tabla real. Los campos de una vista provienen de campos de tablas reales en una o más bases de datos.
Puedes agregar funciones SQL, sentencias WHERE y JOIN a la vista, y también puedes presentar los datos como si provinieran de una única tabla.
Sintaxis de SQL CREATE VIEW
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
Descripción de parámetros:
- CREATE VIEW:Declara que deseas crear una vista.
- view_name:Especifica el nombre de la vista.
- AS:Especifica la palabra clave que indica el inicio de la definición de la vista.
- SELECT column1, column2, ...:Especifica las columnas que contiene la vista, que pueden ser columnas de una tabla o columnas calculadas.
- FROM table_name:Especifica de qué tabla obtiene los datos la vista.
- WHERE condition:Parte opcional, que se utiliza para especificar condiciones de filtrado y limitar las filas de la vista.
Nota:¡La vista siempre muestra los datos más recientes! Cada vez que un usuario consulta la vista, el motor de la base de datos reconstruye los datos utilizando la sentencia SQL de la vista.
Ejemplo de SQL CREATE VIEW
Supongamos que tienes una tabla employees con información de empleados, que incluye las siguientes columnas: employee_id, first_name, last_name, salary y department_id. Ahora, crearemos una vista que muestre la información de los empleados cuyo salario sea superior a cierto umbral.
El ejemplo es el siguiente:
-- 创建包含高工资员工信息的视图 CREATE VIEW high_salary_employees AS SELECT employee_id, first_name, last_name, salary FROM employees WHERE salary > 50000;
En este ejemplo, hemos creado una vista llamada high_salary_employees que contiene la información de los empleados cuyo salario es superior a 50000.
Ahora, puedes usar esta vista como si consultaras una tabla normal:
-- 查询高工资员工视图 SELECT * FROM high_salary_employees;
Esto devolverá los detalles de todos los empleados con un salario superior a 50000, sin necesidad de escribir la misma condición de filtrado cada vez.
Es importante tener en cuenta que una vista es esencialmente una tabla virtual; no almacena datos, sino que se genera a partir de los resultados de una consulta sobre la tabla base. Por lo tanto, si los datos de la tabla base cambian, el contenido de la vista también se actualizará en consecuencia.
SQL: Actualizar una vista
En SQL, no puedes usar directamente la sentencia UPDATE para actualizar una vista, porque una vista es una tabla virtual generada a partir de los resultados de una consulta, no una tabla que almacena datos reales.
La esencia de actualizar una vista es actualizar los datos en la tabla en la que se basa la vista; luego, la vista reflejará estos cambios.
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
Donde table_name es el nombre de la tabla base, column1, column2, ... son las columnas a actualizar, value1, value2, ... son los nuevos valores, y condition es la condición de actualización.
Ahora, queremos agregar la columna "Category" a la vista "Current Product List". Actualizaremos la vista con el siguiente SQL:
Por ejemplo, si tienes una vista llamada high_salary_employees que muestra la información de los empleados con un salario superior a 50000, y esta vista se basa en los resultados de una consulta sobre la tabla employees, puedes actualizar los datos siguiendo estos pasos:
-- 步骤 1: 更新 employees 表中的数据 UPDATE employees SET salary = 60000 WHERE employee_id = 1001; -- 步骤 2: 查询更新后的高工资员工视图 SELECT * FROM high_salary_employees;
De esta manera, has actualizado los datos en la tabla employees, y la vista high_salary_employees reflejará estos cambios.
SQL: Eliminar una vista
En SQL, la eliminación (o borrado) de una vista se realiza mediante la sentencia DROP VIEW.
La sentencia DROP VIEW se utiliza para eliminar una vista existente de la base de datos. La sintaxis es la siguiente:
DROP VIEW [IF EXISTS] view_name;
Descripción de parámetros:
DROP VIEW:Indica que deseas eliminar una vista.
IF EXISTS:Parte opcional, utilizada para verificar si la vista existe. Si existe, se ejecuta la operación de eliminación; si no existe, no se produce ningún error. En algunos sistemas de bases de datos, esto es opcional.
view_name:Especifica el nombre de la vista que se desea eliminar.
Después de ejecutar la siguiente sentencia, la vista high_salary_employees se eliminará de la base de datos.
-- 删除名为 high_salary_employees 的视图 DROP VIEW IF EXISTS high_salary_employees;
Ten en cuenta que esto no afecta los datos de la tabla base; solo elimina la definición de la vista.
Si necesitas eliminar o borrar los datos de una tabla, debes usar la sentencia DROP TABLE.
Al usar la sentencia DROP VIEW, asegúrate de que realmente deseas eliminar la vista, porque una vez eliminada, no será posible recuperar la definición de la vista.
Otras extensiones