Lembre-se, cada desafio é uma chance de crescer. Não se desanime com os erros; eles são degraus no caminho do aprendizado. E acima de tudo, divirta-se! O aprendizado mais eficaz acontece quando nos engajamos e nos interessamos pelo que estamos fazendo.
Vamos imaginar uma tabela de alunos com as seguintes colunas: ID, Nome, Ano, Nota e uma tabela de professores com as colunas ID, PNome, UNome.
CREATE DATABASE Escola;
CREATE TABLE Estudantes (
EstudanteID INT PRIMARY KEY AUTO_INCREMENT,
Nome VARCHAR(100),
DataNascimento DATE
);
CREATE TABLE Cursos (
CursoID INT PRIMARY KEY AUTO_INCREMENT,
NomeCurso VARCHAR(100),
Descricao TEXT
);
CREATE TABLE Matriculas (
MatriculaID INT PRIMARY KEY AUTO_INCREMENT,
EstudanteID INT,
CursoID INT,
DataMatricula DATE,
FOREIGN KEY (EstudanteID) REFERENCES Estudantes(EstudanteID),
FOREIGN KEY (CursoID) REFERENCES Cursos(CursoID)
);
INSERT INTO Estudantes (Nome, DataNascimento) VALUES
('João Silva', '2000-01-15'),
('Maria Souza', '2001-05-23'),
('Pedro Oliveira', '1999-11-30');
INSERT INTO Cursos (NomeCurso, Descricao) VALUES
('Matemática', 'Curso de Matemática Básica e Avançada'),
('História', 'Curso de História Geral e do Brasil'),
('Ciência da Computação', 'Curso de Fundamentos e Avançado em Computação');
INSERT INTO Matriculas (EstudanteID, CursoID, DataMatricula) VALUES
(1, 1, '2024-01-01'),
(1, 3, '2024-01-15'),
(2, 2, '2024-01-20'),
(3, 1, '2024-01-25'),
(3, 2, '2024-02-10');
Utilizando os comandos Joins para realizar consultas nas tabelas (estudantes matriculados em cada curso)
SELECT Estudantes.Nome AS NomeEstudante, Cursos.NomeCurso
FROM Matriculas
JOIN Estudantes ON Matriculas.EstudanteID = Estudantes.EstudanteID
JOIN Cursos ON Matriculas.CursoID = Cursos.CursoID;
Utilizando os comandos Joins para realizar consultas nas tabelas (cursos e o número de estudantes matriculados em cada um)
SELECT Cursos.NomeCurso, COUNT(Matriculas.EstudanteID) AS NumeroEstudantes
FROM Cursos
JOIN Matriculas ON Cursos.CursoID = Matriculas.CursoID
GROUP BY Cursos.NomeCurso;
SELECT Estudantes.Nome AS NomeEstudante, Cursos.NomeCurso, Matriculas.DataMatricula
FROM Matriculas
JOIN Estudantes ON Matriculas.EstudanteID = Estudantes.EstudanteID
JOIN Cursos ON Matriculas.CursoID = Cursos.CursoID;