Introdução
Neste projeto, você aprenderá como usar subconsultas (subqueries) para recuperar informações relevantes das tabelas de funcionários (emp) e departamentos (dept) no banco de dados de pessoal. Você praticará a escrita de consultas SQL complexas para acessar e analisar dados de múltiplas tabelas.
👀 Pré-visualização

🎯 Tarefas
Neste projeto, você aprenderá:
- Como iniciar o servidor MySQL e importar o banco de dados de pessoal
- Como usar uma subconsulta para encontrar o funcionário com o salário mais alto
- Como calcular a proporção de funcionários em um departamento específico em comparação com toda a empresa
- Como recuperar todos os funcionários que trabalham em um local específico usando uma subconsulta
- Como encontrar funcionários cujo salário excede o salário médio em seu departamento
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Compreender o conceito e o uso de subconsultas em SQL
- Escrever consultas SQL complexas que combinam dados de múltiplas tabelas
- Analisar e extrair insights significativos de um banco de dados usando subconsultas
- Demonstrar suas habilidades em SQL em um cenário prático e do mundo real
Iniciar o MySQL e Importar o Banco de Dados
Nesta etapa, você aprenderá como iniciar o servidor MySQL e importar o banco de dados de pessoal.
- Inicie o servidor MySQL usando o comando
sudosem nenhuma senha:
sudo service mysql start
- Acesse o prompt do MySQL:
sudo mysql
- Importe os dados do arquivo
personnel.sqlpara o banco de dados MySQL:
SOURCE /home/labex/project/personnel.sql;
Isso criará o banco de dados personnel e o preencherá com as tabelas e dados necessários.
Consultar o Funcionário com o Maior Salário
Nesta etapa, você aprenderá como usar uma subconsulta para recuperar o nome do funcionário com o salário mais alto.
- Crie um novo arquivo chamado
subquery.sqlno diretório/home/labex/project. - No arquivo
subquery.sql, adicione a seguinte consulta SQL:
-- Consulta para recuperar o(s) funcionário(s) com o salário mais alto
SELECT ename AS `Name` FROM emp WHERE sal = (SELECT MAX(sal) FROM emp);
Esta consulta primeiro encontra o salário máximo na tabela emp usando uma subconsulta e, em seguida, seleciona o ename (nome do funcionário) do(s) funcionário(s) que possuem esse salário máximo.
Calcular a Proporção de Funcionários no Departamento 10
Nesta etapa, você aprenderá como usar uma subconsulta para calcular a proporção de funcionários no departamento 10 em comparação com toda a empresa.
- No arquivo
subquery.sql, adicione a seguinte consulta SQL:
-- Consulta para calcular a proporção de funcionários no departamento 10
SELECT d.dname AS Department, COUNT(e.empno) / (SELECT COUNT(empno) FROM emp) AS Proportion
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE d.deptno = 10;
Esta consulta primeiro conta o número de funcionários no departamento 10, juntando as tabelas emp e dept. Em seguida, divide essa contagem pelo número total de funcionários na tabela emp (usando uma subconsulta) para calcular a proporção.
Recuperar Funcionários que Trabalham em Nova Iorque
Nesta etapa, você aprenderá como usar uma subconsulta para recuperar todos os funcionários que trabalham na localização de Nova York.
- No arquivo
subquery.sql, adicione a seguinte consulta SQL:
-- Consulta para recuperar todos os funcionários que trabalham em Nova York
SELECT e.*
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE d.loc = 'NEW YORK';
Esta consulta junta as tabelas emp e dept para recuperar os funcionários cujo departamento está localizado em Nova York.
Recuperar Funcionários com Salários Superiores à Média do Departamento
Nesta etapa, você aprenderá como usar uma subconsulta para recuperar os funcionários cujo salário é maior que o salário médio em seus respectivos departamentos.
- No arquivo
subquery.sql, adicione a seguinte consulta SQL:
-- Consulta para recuperar funcionários cujo salário é maior que o salário médio em seus respectivos departamentos
SELECT e.* FROM emp e
JOIN (SELECT deptno, AVG(sal) AS avg_sal FROM emp GROUP BY deptno) AS avg
ON e.deptno = avg.deptno
WHERE e.sal > avg.avg_sal;
Esta consulta primeiro calcula o salário médio para cada departamento usando uma subconsulta. Em seguida, junta esta subconsulta com a tabela emp para selecionar os funcionários cujo salário é maior que o salário médio em seu departamento.
Após concluir estas etapas, seu arquivo subquery.sql deve conter todas as consultas SQL necessárias para atender aos requisitos do projeto.
- Salve o arquivo.
- No prompt do MySQL, execute o seguinte comando para executar o script
subquery.sql:
SOURCE /home/labex/project/subquery.sql;
Você deve ver a seguinte saída:

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