Configurar o Banco de Dados e uma CTE Simples
Nesta primeira etapa, você configurará o ambiente do banco de dados e definirá uma Common Table Expression (CTE) simples. CTEs são definidas usando a cláusula WITH e atuam como uma view temporária que existe apenas durante a duração de uma única consulta. Isso torna consultas complexas mais fáceis de ler e gerenciar.
Primeiro, abra o terminal a partir do seu desktop.
Conecte-se ao servidor MySQL como o usuário root. Neste ambiente de laboratório, você pode usar sudo para conectar sem senha.
sudo mysql -u root
Uma vez conectado, você verá o prompt do MySQL (mysql>). Agora, crie um banco de dados chamado labex_db e mude para ele.
CREATE DATABASE IF NOT EXISTS labex_db;
USE labex_db;
Em seguida, crie uma tabela employees e insira alguns dados de exemplo. Esta tabela armazenará informações básicas sobre funcionários, incluindo seu departamento e salário.
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);
Agora que a tabela está pronta, vamos definir uma CTE simples para selecionar apenas os funcionários do departamento 'Sales'.
WITH SalesEmployees AS (
SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE department = 'Sales'
)
SELECT * FROM SalesEmployees;
Vamos detalhar esta consulta:
WITH SalesEmployees AS (...): Isso define uma CTE chamada SalesEmployees.
- A consulta dentro dos parênteses seleciona funcionários da tabela
employees onde o department é 'Sales'.
SELECT * FROM SalesEmployees;: Esta é a consulta principal que recupera todos os dados do nosso conjunto de resultados temporário SalesEmployees.
Você deverá ver a seguinte saída, listando apenas os funcionários do departamento de Vendas:
+-------------+------------+-----------+----------+
| employee_id | first_name | last_name | salary |
+-------------+------------+-----------+----------+
| 1 | John | Doe | 60000.00 |
| 3 | Robert | Jones | 55000.00 |
+-------------+------------+-----------+----------+
2 rows in set (0.00 sec)
Isso confirma que sua primeira CTE está funcionando corretamente. Por favor, permaneça no shell do MySQL para a próxima etapa.