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?
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...
DE
nombre_tabla_1, nombre_tabla_2
DONDE
cláusula_condición
Vamos a entenderlo con un ejemplo. Considere que ha 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_id | nombre_departamento |
---|---|
1 | Finanzas |
2 | Tecnología |
3 | Negocios |
Si utiliza MySQL, puede crear esta tabla mediante la siguiente consulta:
CREAR TABLA `departamento` (
`department_id` int
`nombre_departamento` 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_id | nombre_empleado | departamento_id |
---|---|---|
100 | Juan | 3 |
101 | María | 1 |
102 | Natalya | 3 |
103 | Bruce | 2 |
Con la tabla de departamentos
lista y poblada con datos, cree la tabla de empleados
utilizando la siguiente consulta MySQL:
CREAR TABLA `empleado` (
`employee_id` INT
`nombre_empleado` VARCHAR(255),
`department_id` INT,
FOREIGN KEY (`department_id`) REFERENCIAS departamento(department_id)
);
A continuación, inserte los registros de los empleados en su tabla. Tenga en cuenta que como la columna department_id tiene una referencia de clave foránea con la tabla department
, no puede insertar un department_id que no esté presente en la otra tabla.
INSERT INTO empleado VALUES (100, 'Juan', 3);
INSERT INTO empleado VALUES (101, 'María', 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 department_id. Su consulta se convierte así en
SELECT
employee_id,
nombre_empleado,
nombre_departamento
DE
empleado
departamento
WHERE
empleado.department_id = departamento.department_id;
Cree su vista SQL
Ahora bien, puede ocurrir que esté consultando o haciendo 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
:
CREAR VISTA employee_info COMO
SELECCIONE
employee_id,
nombre_empleado,
nombre_departamento
DE
empleado
departamento
WHERE
empleado.department_id = departamento.department_id;
Con esta vista en su sitio, puede consultar directamente la misma. Por lo tanto, su consulta se simplifica a
SELECCIONE
*
FROM
employee_info;
La consulta de la vista SQL le ofrece la misma salida que la ejecución de su consulta original. Sin embargo, ahora su consulta es 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
SELECCIONE
nueva_columna_1,
nueva_columna_2,
nueva_columna_3 ...
FROM
nuevo_nombre_tabla_1,
nuevo_nombre_tabla_2 ...
WHERE
nueva_condición
Puede entenderlo mejor con un ejemplo. Considere las tablas department
y employee
. 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 employee_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
SELECCIONE
nombre_empleado como nombre
nombre_departamento como departamento
DE
empleado
departamento
WHERE
empleado.department_id = departamento.department_id;
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 SQL Server Management Studio (SSMS).