Subconsultas SQL para Análise de Dados

SQLBeginner
Pratique Agora

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

Imagem de pré-visualização da consulta SQL

🎯 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.

  1. Inicie o servidor MySQL usando o comando sudo sem nenhuma senha:
sudo service mysql start
  1. Acesse o prompt do MySQL:
sudo mysql
  1. Importe os dados do arquivo personnel.sql para 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.

✨ Verificar Solução e Praticar

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.

  1. Crie um novo arquivo chamado subquery.sql no diretório /home/labex/project.
  2. 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.

✨ Verificar Solução e Praticar

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.

  1. 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.

✨ Verificar Solução e Praticar

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.

  1. 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.

✨ Verificar Solução e Praticar

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.

  1. 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.

  1. Salve o arquivo.
  2. 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:

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.