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!

0
respostas

[Projeto] Realizando consultas com SQL: Joins, Views e transações | Mão na massa: gerenciamento escolar com banco de dados relacional

Olá, pessoal.

Vou transcrever aqui as minhas soluções para os exercícios do curso Realizando consultas com SQL: Joins, Views e transações, para quem possa interessar e também para minha própria referencia futura. Estou aberto a revisões e sugestões também.

-- Consulta 1: Buscar o nome do professor e a turma que ele é orientador
SELECT Nome_Professor Professor_Orientador, Nome_Turma Turma FROM Professores
JOIN Turmas ON Professores.ID_Professor = Turmas.ID_Turma;

-- Consulta 2: Retornar o nome e a nota do aluno que possui a melhor nota na disciplina de Matemática
SELECT Alunos.Nome_Aluno, MAX(Notas.Nota) Maior_Nota FROM Notas
JOIN Disciplinas ON Notas.ID_Disciplina = Disciplinas.ID_Disciplina
JOIN Alunos ON Notas.ID_Aluno = Alunos.ID_Aluno
WHERE Disciplinas.Nome_Disciplina = "Matemática";

-- Consulta 3: Identificar o total de alunos por turma
SELECT Nome_Turma, COUNT(*) Total_Alunos FROM Turmas
JOIN Turma_Alunos ON Turmas.ID_Turma = Turma_Alunos.ID_Turma
GROUP BY Turmas.ID_Turma;

-- Consulta 4: Listar os Alunos e as disciplinas em que estão matriculados
SELECT Alunos.Nome_Aluno, Disciplinas.Nome_Disciplina FROM Alunos
JOIN Turma_Alunos ON Alunos.ID_Aluno = Turma_Alunos.ID_Aluno
JOIN Turma_Disciplinas ON Turma_Alunos.ID_Turma = Turma_Disciplinas.ID_Turma
JOIN Disciplinas ON Turma_Disciplinas.ID_Disciplina = Disciplinas.ID_Disciplina;

-- Consulta 5: Criar uma view que apresenta o nome, a disciplina e a nota dos alunos
CREATE VIEW vw_aluno_disciplina_nota AS
SELECT Alunos.Nome_Aluno, Disciplinas.Nome_Disciplina, Notas.Nota FROM Alunos
JOIN Notas ON Alunos.ID_Aluno = Notas.ID_Aluno
JOIN Disciplinas ON Notas.ID_Disciplina = Disciplinas.ID_Disciplina;