Acessando o Banco de Dados MySQL e Consultas SQL

SQLBeginner
Pratique Agora

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

SQL query preview image

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

  1. Abra o terminal e inicie o serviço MySQL usando o seguinte comando:
sudo service mysql start
  1. Acesse o cliente MySQL usando o seguinte comando:
sudo mysql
  1. Importe o arquivo personnel.sql para 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.

✨ Verificar Solução e Praticar

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.

  1. Crie um novo arquivo chamado select_group.sql no diretório ~/project.

  2. No arquivo select_group.sql, adicione a seguinte consulta SQL:

  3. 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;
  4. 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áusula HAVING é 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;
  5. 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áusula ORDER BY é usada para ordenar os resultados por salário em ordem decrescente, e a cláusula LIMIT 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.

✨ Verificar Solução e Praticar

Executar o Script SQL

Nesta etapa, você aprenderá como executar o script SQL.

  1. 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.sql e 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)
✨ Verificar Solução e Praticar

Resumo

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