Configurar la Base de Datos y una CTE Simple
En este primer paso, configurará el entorno de la base de datos y definirá una Expresión Común de Tabla (CTE) simple. Las CTEs se definen utilizando la cláusula WITH y actúan como una vista temporal que existe solo durante la duración de una consulta única. Esto hace que las consultas complejas sean más fáciles de leer y administrar.
Primero, abra la terminal desde su escritorio.
Conéctese al servidor MySQL como usuario root. En este entorno de laboratorio, puede usar sudo para conectarse sin contraseña.
sudo mysql -u root
Una vez conectado, verá el prompt de MySQL (mysql>). Ahora, cree una base de datos llamada labex_db y cambie a ella.
CREATE DATABASE IF NOT EXISTS labex_db;
USE labex_db;
A continuación, cree una tabla employees e inserte algunos datos de ejemplo. Esta tabla almacenará información básica sobre los empleados, incluido su departamento y salario.
CREATE TABLE IF NOT EXISTS employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10, 2)
);
INSERT INTO employees (employee_id, first_name, last_name, department, salary) VALUES
(1, 'John', 'Doe', 'Sales', 60000.00),
(2, 'Jane', 'Smith', 'Marketing', 75000.00),
(3, 'Robert', 'Jones', 'Sales', 55000.00),
(4, 'Emily', 'Brown', 'IT', 90000.00),
(5, 'Michael', 'Davis', 'Marketing', 70000.00);
Ahora que la tabla está lista, definamos una CTE simple para seleccionar solo a los empleados del departamento de 'Sales'.
WITH SalesEmployees AS (
SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE department = 'Sales'
)
SELECT * FROM SalesEmployees;
Analicemos esta consulta:
WITH SalesEmployees AS (...): Esto define una CTE llamada SalesEmployees.
- La consulta dentro de los paréntesis selecciona empleados de la tabla
employees donde el department es 'Sales'.
SELECT * FROM SalesEmployees;: Esta es la consulta principal que recupera todos los datos de nuestro conjunto de resultados temporal SalesEmployees.
Debería ver la siguiente salida, que enumera solo a los empleados del departamento de Ventas:
+-------------+------------+-----------+----------+
| employee_id | first_name | last_name | salary |
+-------------+------------+-----------+----------+
| 1 | John | Doe | 60000.00 |
| 3 | Robert | Jones | 55000.00 |
+-------------+------------+-----------+----------+
2 rows in set (0.00 sec)
Esto confirma que su primera CTE está funcionando correctamente. Por favor, permanezca en la shell de MySQL para el siguiente paso.