Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Mão na massa: gerenciamento escolar com banco de dados relacional

Consulta 1: Retornar a média de Notas dos Alunos em história.

SELECT n.id_disciplina,
d.Nome_Disciplina,
Round(AVG(n.nota),2) AS 'média'
FROM Notas n
left join Disciplinas d
on n.ID_Disciplina = d.ID_Disciplina
where d.Nome_Disciplina = 'História'

Consulta 2: Retornar as informações dos alunos cujo Nome começa com 'A'.

SELECT nome_aluno
from Alunos
WHERE nome_aluno LIKE('A%')

Consulta 3: Buscar apenas os alunos que fazem aniversário em fevereiro.

select nome_aluno,
data_nascimento
FROM Alunos
where STRFTIME('%m', data_nascimento) = '02'

Consulta 4: Realizar uma consulta que calcula a idade dos Alunos.

select nome_aluno,
CAST((julianday('now') - julianday(data_nascimento))/365.25 as INTEGER) as idade
FROM Alunos

Consulta 5: Retornar se o aluno está ou não aprovado. Aluno é considerado aprovado se a sua nota foi igual ou maior que 6.

SELECT a.Nome_Aluno,
d.Nome_Disciplina,
n.Nota,
CASE
WHEN n.Nota >= 6 THEN 'Aprovado'
ELSE 'Reprovado'
END AS situacao
FROM Alunos a
LEFT JOIN Notas n
ON a.ID_Aluno = n.ID_Aluno
LEFT JOIN Disciplinas d
ON n.ID_Disciplina = d.ID_Disciplina;

1 resposta

Olá, Carlos! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o SELECT com funções de agregação para calcular médias em SQL, utilizou muito bem o JOIN entre tabelas para relacionar alunos, notas e disciplinas e ainda compreendeu a importância do CASE para classificar a situação dos estudantes conforme suas notas.

Uma dica interessante para o futuro é criar views que encapsulem essas consultas, facilitando a reutilização e deixando o código mais limpo. Assim:

CREATE VIEW vw_situacao_alunos AS
SELECT a.Nome_Aluno,
       d.Nome_Disciplina,
       n.Nota,
       CASE
           WHEN n.Nota >= 6 THEN 'Aprovado'
           ELSE 'Reprovado'
       END AS situacao
FROM Alunos a
LEFT JOIN Notas n
       ON a.ID_Aluno = n.ID_Aluno
LEFT JOIN Disciplinas d
       ON n.ID_Disciplina = d.ID_Disciplina;

Isso faz com que você possa consultar diretamente SELECT * FROM vw_situacao_alunos; sem precisar repetir toda a lógica.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Usar aliases claros: deixar os nomes das colunas mais descritivos.
  • Adicionar índices: melhorar a performance em consultas sobre notas e datas.
  • Explorar funções de data: para cálculos de idade e aniversários com maior precisão.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: o que você acha mais interessante evoluir neste código, criar views para simplificar consultas recorrentes ou adicionar filtros mais complexos (como por disciplina e faixa de idade) para análises específicas?

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!