-- 1 - Criar tabelas
CREATE TABLE Alunos (
id_aluno INT PRIMARY KEY,
nome_aluno VARCHAR(255),
data_nascimento DATE,
genero VARCHAR(50),
endereco VARCHAR(255),
telefone_contato VARCHAR(20),
email VARCHAR(255)
);
CREATE TABLE Professores (
id_professor INT PRIMARY KEY,
nome_professor VARCHAR(255),
data_nascimento DATE,
genero VARCHAR(50),
telefone_contato VARCHAR(20),
email VARCHAR(255)
);
CREATE TABLE Disciplinas (
id_disciplina INT PRIMARY KEY,
nome_disciplina VARCHAR(255),
descricao TEXT,
carga_horaria INT,
id_professor INT,
FOREIGN KEY (id_professor) REFERENCES Professores(id_professor)
);
CREATE TABLE Turmas (
id_turma INT PRIMARY KEY,
nome_turma VARCHAR(255),
ano_letivo INT,
id_professor_orientador INT,
FOREIGN KEY(id_professor_orientador) REFERENCES Professores(id_professor)
);
CREATE TABLE Turma_disciplinas (
id_turma INT,
id_disciplina INT,
PRIMARY KEY(id_turma, id_disciplina),
FOREIGN KEY(id_turma) REFERENCES Turmas(id_turma),
FOREIGN KEY(id_disciplina) REFERENCES Disciplinas(ID_Disciplina)
);
CREATE TABLE Turma_alunos (
id_turma INT,
id_aluno INT,
PRIMARY KEY (id_turma, id_aluno),
FOREIGN KEY (id_turma) REFERENCES Turmas(id_turma),
FOREIGN KEY (id_aluno) REFERENCES Alunos(id_aluno)
);
CREATE TABLE Notas (
id_nota INT PRIMARY KEY,
id_aluno INT,
id_disciplina INT,
valor_nota DECIMAL(5,2),
data_avalicao DATE,
FOREIGN KEY (id_aluno) REFERENCES Alunos(id_aluno),
FOREIGN KEY (id_disciplina) REFERENCES Disciplinas(id_disciplina)
);
-- 2 - Inserir dados
INSERT INTO Alunos VALUES
('1','João Silva','2005-03-15','Masculino','Rua das Flores, 123','(11) 9876-5432','joao@email.com'),
('2','Maria Santos','2006-06-20','Feminino','Avenida Principal, 456','(11) 8765-4321','maria@email.com'),
('3','Pedro Soares','2004-01-10','Masculino','Rua Central, 789','(11) 7654-3210','pedro@email.com'),
('4','Ana Lima','2005-04-02','Feminino','Rua da Escola, 56','(11) 8765-4321','ana@email.com'),
('5','Mariana Fernandes','2005-08-12','Feminino','Avenida da Paz, 789','(11) 5678-1234','mariana@email.com'),
('6','Lucas Costa','2003-11-25','Masculino','Rua Principal, 456','(11) 1234-5678','lucas@email.com'),
('7','Isabela Santos','2006-09-10','Feminino','Rua da Amizade, 789','(11) 9876-5432','isabela@email.com'),
('8','Gustavo Pereira','2004-05-15','Masculino','Avenida dos Sonhos, 123','(11) 7654-3210','gustavo@email.com'),
('9','Carolina Oliveira','2005-02-20','Feminino','Rua da Alegria, 456','(11) 8765-4321','carolina@email.com'),
('10','Daniel Silva','2003-10-05','Masculino','Avenida Central, 789','(11) 1234-5678','daniel@email.com'),
('11','Larissa Souza','2004-12-08','Feminino','Rua da Felicidade, 123','(11) 9876-5432','larissa@email.com'),
('12','Bruno Costa','2005-07-30','Masculino','Avenida Principal, 456','(11) 7654-3210','bruno@email.com'),
('13','Camila Rodrigues','2006-03-22','Feminino','Rua das Estrelas, 789','(11) 8765-4321','camila@email.com'),
('14','Rafael Fernandes','2004-11-18','Masculino','Avenida dos Sonhos, 123','(11) 1234-5678','rafael@email.com'),
('15','Letícia Oliveira','2005-01-05','Feminino','Rua da Alegria, 456','(11) 9876-5432','leticia@email.com'),
('16','Fernanda Lima','2004-02-12','Feminino','Rua da Esperança, 789','(11) 4567-8901','fernanda@email.com'),
('17','Vinícius Santos','2003-07-28','Masculino','Avenida da Amizade, 123','(11) 8901-2345','vinicius@email.com'),
('18','Juliana Pereira','2006-09-01','Feminino','Rua das Rosas, 789','(11) 3456-7890','juliana@email.com');
[...]
-- 3 - Realizar consultas simples
-- Consulta 1: Executar consultas para verificar se os dados foram importados corretamente em todas as tabelas.
SELECT * FROM Alunos;
SELECT * FROM Professores;
SELECT * FROM Disciplinas;
SELECT * from Turmas;
SELECT * FROM Turma_disciplinas;
SELECT * FROM Turma_alunos;
SELECT * from Notas;
-- Consulta 2: Retorne as informações de todos os alunos ordenados pelo nome.
SELECT * FROM Alunos ORDER BY nome_aluno;
-- Consulta 3: Retornar a disciplina que possui a carga horaria maior que 40.
SELECT * FROM Disciplinas WHERE carga_horaria > 40;
-- Consulta 4: Buscar as notas que são maiores que 6 e menores que 8.
SELECT * from Notas WHERE valor_nota BETWEEN 6 AND 8;