Joins de Banco de Dados para Dados de Pessoal

SQLBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como usar consultas de junção (join queries) para recuperar dados relevantes das tabelas emp, dept e salgrade no banco de dados de pessoal.

👀 Pré-visualização

Exemplo de consulta SQL join

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como acessar o banco de dados MySQL e importar os dados de pessoal
  • Como usar um equi-join (inner join) para recuperar os nomes, datas de contratação e os nomes dos departamentos correspondentes da tabela de funcionários
  • Como usar um non-equi join para recuperar os nomes, salários e informações de nível salarial correspondentes de todos os funcionários da tabela de funcionários
  • Como usar um self-join para recuperar as informações do superior do funcionário chamado "SMITH"
  • Como usar um left outer join para recuperar todas as informações do departamento e suas informações de funcionários correspondentes

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Compreender os diferentes tipos de consultas de junção e quando usá-los
  • Recuperar e manipular dados de várias tabelas em um banco de dados usando consultas de junção
  • Aplicar conceitos avançados de SQL para resolver problemas complexos de recuperação de dados

Acessar o MySQL e Importar os Dados

Nesta etapa, você aprenderá como acessar o banco de dados MySQL e importar os dados de pessoal.

  1. Abra um terminal e execute o seguinte comando para iniciar o serviço MySQL:
sudo service mysql start
  1. Acesse a interface de linha de comando do MySQL usando o comando sudo sem nenhuma senha:
sudo mysql
  1. Importe os dados de pessoal do arquivo /home/labex/project/personnel.sql para o banco de dados MySQL:
SOURCE /home/labex/project/personnel.sql;

Agora você acessou com sucesso o banco de dados MySQL e importou os dados de pessoal. Você pode prosseguir para a próxima etapa.

✨ Verificar Solução e Praticar

Recuperar Nomes de Funcionários, Datas de Contratação e Nomes dos Departamentos

Nesta etapa, você aprenderá como usar um equi-join (inner join) para recuperar os nomes, datas de contratação e os nomes dos departamentos correspondentes da tabela de funcionários.

  1. Abra o arquivo join_query.sql em um editor de texto e adicione o seguinte código:
SELECT e.ename AS `Name`, e.hiredate AS HireDate, d.dname AS DepartmentName
FROM emp e
JOIN dept d ON e.deptno = d.deptno;

Esta consulta realiza um inner join entre as tabelas emp e dept, correspondendo a coluna deptno da tabela emp com a coluna deptno da tabela dept. A saída resultante incluirá o nome do funcionário, a data de contratação e o nome do departamento.

  1. Salve o arquivo join_query.sql.
✨ Verificar Solução e Praticar

Recuperar Nomes de Funcionários, Salários e Níveis Salariais

Nesta etapa, você aprenderá como usar um non-equi join para recuperar os nomes, salários e as informações correspondentes sobre o nível salarial de todos os funcionários da tabela de funcionários.

  1. Abra o arquivo join_query.sql e adicione o seguinte código abaixo da consulta anterior:
SELECT e.ename AS `Name`, e.sal AS Salary,
       CASE s.grade
           WHEN 1 THEN 'A'
           WHEN 2 THEN 'B'
           WHEN 3 THEN 'C'
           WHEN 4 THEN 'D'
           WHEN 5 THEN 'E'
           ELSE 'Unknown'
       END AS Grade
FROM emp e
JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal;

Esta consulta realiza um non-equi join entre as tabelas emp e salgrade, correspondendo o salário do funcionário (e.sal) com a faixa de nível salarial (s.losal e s.hisal). A instrução CASE é usada para converter o nível salarial numérico em uma letra de nível correspondente.

  1. Salve o arquivo join_query.sql.
✨ Verificar Solução e Praticar

Recuperar Informações do Superior do Funcionário Chamado 'SMITH'

Nesta etapa, você aprenderá como usar um self-join para recuperar as informações do superior do funcionário chamado "SMITH".

  1. Abra o arquivo join_query.sql e adicione o seguinte código abaixo das consultas anteriores:
SELECT e1.empno, e1.ename, e1.job, e1.mgr, e1.hiredate, e1.sal, e1.comm, e1.deptno
FROM emp e1
JOIN emp e2 ON e1.empno = e2.mgr
WHERE e2.ename = 'SMITH';

Esta consulta realiza um self-join na tabela emp, correspondendo a coluna empno de um funcionário (e1) com a coluna mgr de outro funcionário (e2). A cláusula WHERE filtra os resultados para incluir apenas as informações do superior do funcionário chamado "SMITH".

  1. Salve o arquivo join_query.sql.
✨ Verificar Solução e Praticar

Recuperar Todas as Informações do Departamento e as Informações Correspondentes dos Funcionários

Nesta etapa, você aprenderá como usar um left outer join para recuperar todas as informações do departamento e as informações correspondentes dos funcionários. Se um departamento não tiver nenhum funcionário, as informações do funcionário serão preenchidas com NULL.

  1. Abra o arquivo join_query.sql e adicione o seguinte código abaixo das consultas anteriores:
SELECT e.empno, e.ename, e.job, e.mgr, e.hiredate, e.sal, e.comm, e.deptno,
       d.deptno AS deptno_dept, d.dname, d.loc
FROM dept d
LEFT JOIN emp e ON d.deptno = e.deptno;

Esta consulta realiza um left outer join entre as tabelas dept e emp, correspondendo a coluna deptno de ambas as tabelas. A saída resultante incluirá todas as informações do departamento, juntamente com as informações correspondentes dos funcionários. Se um departamento não tiver nenhum funcionário, as informações do funcionário serão preenchidas com NULL.

  1. Salve o arquivo join_query.sql.

Agora você concluiu todas as tarefas do projeto. Você pode executar o script join_query.sql na interface de linha de comando do MySQL para ver os resultados das consultas:

MariaDB [personnel]> SOURCE /home/labex/project/join_query.sql;
SQL query execution result
✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.