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;