Crear una vista a partir de una consulta SELECT
En este paso, aprenderá cómo crear una vista en MySQL a partir de una consulta SELECT
. Una vista es una tabla virtual basada en el conjunto de resultados de una declaración SQL. Las vistas son útiles para simplificar consultas complejas, ocultar la complejidad de los datos y proporcionar un nivel de abstracción para el acceso a los datos.
Primero, conectémonos al servidor MySQL. Abra una terminal en la máquina virtual de LabEx. Ya debería estar en el directorio ~/project
.
mysql -u root -p
Cuando se le solicite, ingrese la contraseña de root. Si no ha establecido una contraseña de root, simplemente presione Enter.
Ahora, creemos una base de datos llamada company
.
CREATE DATABASE company;
A continuación, cambiemos a la base de datos company
.
USE company;
Creemos una tabla simple llamada employees
con algunos datos de muestra.
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
salary DECIMAL(10, 2),
department VARCHAR(50)
);
INSERT INTO employees (id, first_name, last_name, salary, department) VALUES
(1, 'John', 'Doe', 60000.00, 'Sales'),
(2, 'Jane', 'Smith', 75000.00, 'Marketing'),
(3, 'Robert', 'Jones', 50000.00, 'Sales'),
(4, 'Emily', 'Brown', 80000.00, 'Engineering'),
(5, 'Michael', 'Davis', 65000.00, 'Marketing');
Ahora, creemos una vista llamada sales_employees
que muestre solo a los empleados del departamento de 'Ventas'.
CREATE VIEW sales_employees AS
SELECT id, first_name, last_name, salary
FROM employees
WHERE department = 'Sales';
Esta declaración crea una vista llamada sales_employees
. La vista selecciona las columnas id
, first_name
, last_name
y salary
de la tabla employees
, pero solo para las filas donde el department
es 'Sales'.
Para verificar que se haya creado la vista, puede describirla:
DESCRIBE sales_employees;
Este comando mostrará la estructura de la vista sales_employees
, similar a describir una tabla.
También puede consultar la vista como si fuera una tabla normal:
SELECT * FROM sales_employees;
Esto mostrará a todos los empleados del departamento de Ventas, según los datos de la tabla employees
.
+------+------------+-----------+----------+
| id | first_name | last_name | salary |
+------+------------+-----------+----------+
| 1 | John | Doe | 60000.00 |
| 3 | Robert | Jones | 50000.00 |
+------+------------+-----------+----------+
2 rows in set (0.00 sec)
Ahora ha creado con éxito una vista a partir de una consulta SELECT
.