Introdução
Neste projeto prático, você embarcará em uma jornada para dominar a arte de consultar SQL, trabalhando com o banco de dados de pessoal e sua tabela emp. Através de uma série de exercícios práticos, você adquirirá as habilidades necessárias para recuperar, filtrar e analisar dados de funcionários de forma eficaz.
👀 Pré-visualização

🎯 Tarefas
Neste projeto, você aprenderá:
- Como acessar o banco de dados MySQL usando o terminal
- Como importar um arquivo SQL para o banco de dados MySQL
- Como consultar todas as informações dos funcionários da tabela
empe ordenar os resultados - Como consultar o número do departamento e o número total de funcionários para departamentos com mais de 4 funcionários
- Como consultar o funcionário com o salário mais alto no departamento 10
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Entender como trabalhar com bancos de dados MySQL usando o terminal
- Executar consultas SQL básicas para recuperar e analisar dados
- Aplicar técnicas de ordenação, agrupamento e filtragem para extrair informações específicas de um banco de dados
Acessar o MySQL e Importar o Banco de Dados
Nesta etapa, você aprenderá como acessar o banco de dados MySQL e importar o arquivo personnel.sql.
- Abra o terminal e inicie o serviço MySQL usando o seguinte comando:
sudo service mysql start
- Acesse o cliente MySQL usando o seguinte comando:
sudo mysql
- Importe o arquivo
personnel.sqlpara o banco de dados MySQL usando o seguinte comando:
source /home/labex/project/personnel.sql;
Isso importará o banco de dados personnel e a tabela emp para o seu ambiente MySQL.
Escrever a Consulta
Nesta etapa, você aprenderá a escrever três consultas: como consultar todos os funcionários da tabela emp e ordenar os resultados, como consultar o número do departamento e o número total de funcionários para departamentos com mais de 4 funcionários e como consultar o funcionário mais bem pago no departamento 10.
Crie um novo arquivo chamado
select_group.sqlno diretório~/project.No arquivo
select_group.sql, adicione a seguinte consulta SQL:Esta consulta retornará todas as informações dos funcionários da tabela
emp, ordenadas pelo número do departamento em ordem crescente e pelo salário em ordem decrescente.SELECT * FROM emp ORDER BY deptno ASC, sal DESC;Esta consulta retornará o número do departamento e o número total de funcionários para os departamentos com mais de 4 funcionários. A cláusula
GROUP BYé usada para agrupar os funcionários por número de departamento, e a cláusulaHAVINGé usada para filtrar os resultados, incluindo apenas os departamentos com mais de 4 funcionários.SELECT deptno, COUNT(*) AS total_employees FROM emp GROUP BY deptno HAVING total_employees > 4;Esta consulta retornará o número do funcionário, nome, número do departamento e informações do cargo do funcionário com o número do departamento 10 e o salário mais alto. A cláusula
WHEREé usada para filtrar os resultados, incluindo apenas os funcionários com o número do departamento 10, a cláusulaORDER BYé usada para ordenar os resultados por salário em ordem decrescente, e a cláusulaLIMIT 1é usada para retornar apenas o primeiro resultado, que será o funcionário com o salário mais alto.SELECT empno, ename, deptno, job FROM emp WHERE deptno = 10 ORDER BY sal DESC LIMIT 1;Salve o arquivo.
Executar o Script SQL
Nesta etapa, você aprenderá como executar o script SQL.
No terminal MySQL, execute o script
select_group.sql:source /home/labex/project/select_group.sql;Isso executará as instruções SQL no arquivo
select_group.sqle exibirá o resultado.Exemplo de saída:
MariaDB [personnel]> source /home/labex/project/select_group.sql; +-------+--------+-----------+------+------------+---------+---------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 | | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7788 | SCOTT | ANALYST | 7566 | 1987-06-13 | 3000.00 | NULL | 20 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | | 7876 | ADAMS | CLERK | 7788 | 1987-06-13 | 1100.00 | NULL | 20 | | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | +-------+--------+-----------+------+------------+---------+---------+--------+ 14 rows in set (0.000 sec) +--------+-----------------+ | deptno | total_employees | +--------+-----------------+ | 20 | 5 | | 30 | 6 | +--------+-----------------+ 2 rows in set (0.000 sec) +-------+-------+--------+-----------+ | empno | ename | deptno | job | +-------+-------+--------+-----------+ | 7839 | KING | 10 | PRESIDENT | +-------+-------+--------+-----------+ 1 row in set (0.000 sec)
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.
