1
resposta

[Projeto] DESAFIO II - Gerenciamento escolar com banco de dados relacional

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

SELECT tabela_Notas.id_disciplina, tabelaDisciplinas.nome_disciplina, ROUND(AVG(tabela_Notas.valor_nota)) 'Média'
FROM tabela_Notas
JOIN tabelaDisciplinas on tabela_Notas.id_disciplina = tabelaDisciplinas.id_disciplina
WHERE tabelaDisciplinas.nome_disciplina like 'Hist%'
GROUP BY tabela_Notas.id_disciplina, tabelaDisciplinas.nome_disciplina;

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

SELECT * from tabelaalunos where nome_aluno like 'A%';

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

SELECT * FROM tabelaalunos 
WHERE STRFTIME('%m', data_de_nascimento) = '02';

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

SELECT *, 
    CAST((JULIANDAY('now') - JULIANDAY(data_de_nascimento))/ 365.25  AS INT) AS idade_aluno
FROM tabelaalunos
WHERE data_de_nascimento IS NOT NULL;

-- '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 
    tabelaalunos.id_aluno, 
    tabelaalunos.nome_aluno, 
    tabelaDisciplinas.nome_disciplina,
    tabela_Notas.valor_nota,
    CASE
        WHEN tabela_Notas.valor_nota >= 6 THEN 'Aprovado'
        ELSE 'Reprovado'
    END AS Situacao_aluno
FROM tabela_Notas
JOIN tabelaalunos ON tabela_Notas.id_aluno = tabelaalunos.id_aluno
JOIN tabelaDisciplinas on tabela_Notas.id_disciplina=tabelaDisciplinas.id_disciplina
ORDER BY 
    tabelaalunos.nome_aluno asc, 
    tabelaDisciplinas.nome_disciplina ASC;
1 resposta

Olá, Raphael! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções de agregação para calcular médias, utilizou muito bem cláusulas condicionais para validar situações de aprovação e ainda compreendeu a importância dos filtros com LIKE e STRFTIME para refinar consultas específicas.

Uma dica interessante para o futuro é aplicar alias mais descritivos nas colunas, facilitando a leitura dos resultados. Assim:

SELECT 
    a.id_aluno AS codigo_aluno,
    a.nome_aluno AS nome,
    d.nome_disciplina AS disciplina,
    n.valor_nota AS nota,
    CASE
        WHEN n.valor_nota >= 6 THEN 'Aprovado'
        ELSE 'Reprovado'
    END AS situacao
FROM tabela_Notas n
JOIN tabelaalunos a ON n.id_aluno = a.id_aluno
JOIN tabelaDisciplinas d ON n.id_disciplina = d.id_disciplina
ORDER BY a.nome_aluno ASC, d.nome_disciplina ASC;

Isso faz com que os resultados fiquem mais claros e organizados para quem consulta os dados.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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