Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Base de datos Última actualización: 24 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Utilizamos SQL o Lenguaje de Consulta Estructurado para comunicarnos con una base de datos relacional y crear vistas SQL.

Ahora bien, ¿qué son las vistas SQL? Son tablas virtuales que combinan y almacenan datos de tablas reales de la base de datos que usted crea. A su vez, usted obtiene un acceso seguro y simplificado a su conjunto de datos al tiempo que oculta las estructuras e implementaciones de las tablas subyacentes.

Entonces, ¿cómo funciona esto? Ya sabe que las consultas SQL se utilizan para crear vistas SQL. Cuando se crea la vista SQL, se almacena la consulta SQL subyacente. Cuando se utiliza una consulta SQL para buscar datos de varias tablas, la consulta se ejecuta y ayuda a obtener datos de las tablas correspondientes de la base de datos. Del mismo modo, cuando consulta una vista SQL creada, primero se obtiene la consulta almacenada y luego se ejecuta.

¿Cuál es la utilidad de crear vistas SQL?

SQL

Como las vistas SQL están respaldadas por consultas SQL almacenadas, contribuyen a la seguridad de su base de datos. También simplifican las consultas complejas y aumentan el rendimiento de sus consultas, entre otras ventajas. Veamos cómo la creación de vistas SQL puede ser beneficiosa para su base de datos y sus aplicaciones:

#1. Proporcionan seguridad a la base de datos

Las vistas SQL actúan como tablas virtuales y ocultan las estructuras de las tablas reales de la base de datos. Así, con sólo mirar una vista, no es posible saber cuántas tablas hay y cuáles son las diferentes columnas de la tabla. Además, puede añadir restricciones de control de acceso a su base de datos para que un usuario sólo pueda consultar la vista y no las tablas reales.

#2. Simplifica las consultas complejas

A menudo sus consultas SQL abarcan varias tablas con condiciones de unión complejas. Si utiliza este tipo de consultas complejas con frecuencia, puede aprovechar la potencia de la creación de vistas SQL. Puede almacenar su consulta compleja en su vista SQL. Con esto, puede simplemente consultar la vista en lugar de tener que ejecutar toda la consulta compleja.

#3. Mitiga los cambios de esquema

Si sus estructuras de tabla subyacentes cambian, como la adición o eliminación de columnas, sus vistas no se verán afectadas. Si confía en sus vistas SQL para todas sus consultas, no tiene que preocuparse por el cambio de esquema. Al tratarse de tablas virtuales, sus vistas SQL creadas seguirán funcionando sin problemas.

#4. Mejora el rendimiento de las consultas

Cuando crea vistas SQL, el motor de la base de datos optimiza la consulta subyacente antes de almacenarlas. Una consulta almacenada se ejecuta más rápido que la misma consulta directamente. Por lo tanto, el uso de vistas SQL para consultar sus datos le proporciona un mejor rendimiento y resultados más rápidos.

¿Cómo crear vistas SQL?

Para crear vistas SQL, puede utilizar el comando CREAR VISTA. Una vista contiene una sentencia SELECT. Ésta proporciona la consulta que se almacenará en la vista. La sintaxis es la siguiente

CREAR VISTA nombre_vista COMO 
SELECT 
 columna_1, 
 columna_2, 
 columna_3...
FROM 
 nombre_tabla_1, nombre_tabla_2
WHERE 
 cláusula_condición

Vamos a entenderlo con un ejemplo. Considere que se han creado dos tablas departamento y empleado. La de departamento contiene el nombre del departamento y su ID. Por su parte, la tabla empleado contiene el nombre y el ID del empleado, junto con el ID del departamento al que pertenecen. Utilizará estas dos tablas para crear su vista SQL.

Cree sus tablas de base de datos

departamento_idnombre_departamento
1Finanzas
2Tecnología
3Negocios
Tabla 1: departamento

Si utiliza MySQL, puede crear esta tabla mediante la siguiente consulta:

CREAR TABLA `departamento` (
 `department_id` int,
 `department_name` varchar(255),
 PRIMARY KEY (`department_id`)
);

Inserte los datos en la tabla que ha creado utilizando el siguiente SQL:

INSERT INTO departamento VALUES (1, 'Finanzas');
INSERT INTO departamento VALUES (2, 'Tecnología');
INSERT INTO departamento VALUES (3, 'Negocios');
empleado_idnombre_empleadodepartamento_id
100Juan3
101María1
102Natalya3
103Bruce2
Tabla 2: empleado

Con la tabla de departamentos lista y poblada con datos, cree la tabla de empleados utilizando la siguiente consulta MySQL:

CREATE TABLE `employee` (
 `employee_id` INT, 
 `employee_name` VARCHAR(255), 
 `department_id` INT, 
 FOREIGN KEY (`department_id`) REFERENCES department(department_id)
);

A continuación, inserte los registros de los empleados en su tabla. Tenga en cuenta que como la columna departamento_id tiene una referencia de clave foránea con la tabla department, no puede insertar un departamento_id que no esté presente en la otra tabla.

INSERT INTO empleado VALUES (100, 'John', 3);
INSERT INTO empleado VALUES (101, 'Mary', 1);
INSERT INTO empleado VALUES (102, 'Natalya', 3);
INSERT INTO empleado VALUES (103, 'Bruce', 1);

Consultar las tablas de su base de datos

Utilicemos las tablas en una consulta a la base de datos. Consideremos el caso en el que tiene que consultar el id_empleado, el nombre_empleado y el nombre_departamento de todos los empleados. En este caso, necesita utilizar ambas tablas y unirlas utilizando la columna común, que es departamento_id. Su consulta se convierte así en

SELECT
 employee_id,
 employee_name,
 department_name
FROM 
 employee,
 department
WHERE 
 employee.department_id = department.department_id;
Línea de comandos de MySQL que muestra la salida de consulta de una sentencia SELECT.

Cree su vista SQL

Ahora bien, puede ocurrir que usted consulte o haga referencia a estos datos con frecuencia. Además, con el tiempo, al haber más registros en sus tablas, su tiempo de consulta empezaría a aumentar. En tal escenario, puede crear la vista SQL correspondiente a esta consulta.

Utilice la siguiente consulta para crear una vista denominada employee_info:

CREATE VIEW employee_info AS 
SELECT
 employee_id,
 employee_name, 
 department_name 
FROM 
 employee, 
 department 
WHERE 
 employee.department_id = department.department_id;
Línea de comandos de MySQL mostrando el comando CREATE VIEW.

Una vez creada esta vista, puede consultarla directamente. Por lo tanto, su consulta se simplifica a

SELECT 
 * 
FROM 
 employee_info;

La consulta de la vista SQL le proporciona el mismo resultado que la consulta original. Sin embargo, ahora su consulta es más fácil de mantener. La vista oculta las complejidades de su consulta sin comprometer el resultado ni el rendimiento.

¿Cómo sustituir las vistas SQL?

Si tiene una vista con un nombre concreto y desea modificarla o sustituirla, utilice el comando CREAR O SUSTITUIR VISTA. Utilizándolo, puede modificar la sentencia SELECT que se utilizó para crear la vista. De este modo, la salida de la vista se sustituye manteniendo intacto el nombre de la vista. Además, se crea una nueva vista SQL si no existe.

Puede reemplazar vistas SQL utilizando la siguiente sintaxis:

CREAR O SUSTITUIR VISTA nombre_vista COMO 
SELECT 
 nueva_columna_1, 
 nueva_columna_2, 
 nueva_columna_3 ...
FROM 
 nuevo_nombre_tabla_1, 
 nuevo_nombre_tabla_2 ...
WHERE 
 nueva_condición_clausa

Puede entenderlo mejor con un ejemplo. Considere las tablas departamento y empleado. Se crea una vista SQL employee_info a partir de ellas, que contiene las columnas employee_id, employee_name y department_name.

Teniendo en cuenta cuestiones de seguridad, es posible que desee eliminar el empleado_id de esta vista. Además, también querría cambiar los nombres de las columnas para ocultar las columnas reales de la base de datos. Puede realizar estos cambios en la vista existente mediante la siguiente consulta SQL:

CREAR O SUSTITUIR VISTA employee_info COMO
SELECT
 employee_name as name,
 department_name as department
FROM
 employee,
 department
WHERE
 employee.department_id = department.department_id;
Línea de comandos de MySQL que muestra el comando CREATE OR REPLACE VIEW y la salida de su consulta.

Una vez sustituida la vista, obtendrá resultados diferentes cuando utilice la misma consulta que utilizaba antes. Por ejemplo, en el resultado de la consulta, verá que se ha eliminado una de las columnas. Además, los nombres de las columnas se han modificado de nombre_empleado y nombre_departamento a nombre y departamento, respectivamente.

Aproveche el poder de la creación de vistas SQL

La creación de vistas SQL no sólo le proporcionará consultas simplificadas y una búsqueda de datos más rápida, sino también seguridad y protección frente a los cambios de esquema. La creación de vistas SQL es bastante sencilla. Puede tomar cualquier consulta existente que tenga y convertirla en una vista SQL.

Utilice la guía paso a paso anterior para crear vistas SQL y aprovechar sus ventajas. Con las vistas SQL, puede hacer que sus aplicaciones de bases de datos sean sencillas y seguras a la vez que aumenta su rendimiento.

Si desea gestionar su propio servidor SQL, eche un vistazo a Estudio de gestión de SQL Server (SSMS).

  • Debanjan Choudhury
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre bases de datos
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder