1 - Criar as Tabelas
-- Tabela Alunos
CREATE TABLE Alunos (
id_aluno INTEGER PRIMARY KEY,
nome_aluno VARCHAR(100),
data_nascimento DATE,
genero VARCHAR(20),
endereco TEXT,
telefone VARCHAR(20),
email VARCHAR(100)
);
-- Tabela Professores
CREATE TABLE Professores (
id_professor INTEGER PRIMARY KEY,
nome_professor VARCHAR(100),
data_nascimento DATE,
genero VARCHAR(20),
telefone VARCHAR(20),
email VARCHAR(100)
);
-- Tabela Disciplinas
CREATE TABLE Disciplinas (
id_disciplina INTEGER PRIMARY KEY,
nome_disciplina VARCHAR(100),
descricao TEXT,
carga_horaria INTEGER,
id_professor INTEGER,
FOREIGN KEY (id_professor) REFERENCES Professores(id_professor)
);
-- Tabela Turmas
CREATE TABLE Turmas (
id_turma INTEGER PRIMARY KEY,
nome_turma VARCHAR(50),
ano_letivo INTEGER,
id_professor_orientador INTEGER,
FOREIGN KEY (id_professor_orientador) REFERENCES Professores(id_professor)
);
-- Tabela Turma_Disciplinas (N:N entre Turmas e Disciplinas)
CREATE TABLE Turma_Disciplinas (
id_turma INTEGER,
id_disciplina INTEGER,
PRIMARY KEY (id_turma, id_disciplina),
FOREIGN KEY (id_turma) REFERENCES Turmas(id_turma),
FOREIGN KEY (id_disciplina) REFERENCES Disciplinas(id_disciplina)
);
-- Tabela Turma_Alunos (N:N entre Turmas e Alunos)
CREATE TABLE Turma_Alunos (
id_turma INTEGER,
id_aluno INTEGER,
PRIMARY KEY (id_turma, id_aluno),
FOREIGN KEY (id_turma) REFERENCES Turmas(id_turma),
FOREIGN KEY (id_aluno) REFERENCES Alunos(id_aluno)
);
-- Tabela Notas
CREATE TABLE Notas (
id_nota INTEGER PRIMARY KEY AUTOINCREMENT,
id_aluno INTEGER,
id_disciplina INTEGER,
valor_nota FLOAT,
data_avaliacao DATE,
FOREIGN KEY (id_aluno) REFERENCES Alunos(id_aluno),
FOREIGN KEY (id_disciplina) REFERENCES Disciplinas(id_disciplina)
);
2 - Inserir Dados
-- Exemplo de inserção para teste
INSERT INTO Alunos (id_aluno, nome_aluno, data_nascimento) VALUES (1, 'Ana Silva', '2010-05-15');
INSERT INTO Professores (id_professor, nome_professor) VALUES (1, 'Prof. Ricardo');
INSERT INTO Disciplinas (id_disciplina, nome_disciplina, carga_horaria, id_professor) VALUES (1, 'Matemática', 60, 1);
3 - Realizar Consultas
Consulta 1: Verificar se os dados foram importados
SELECT * FROM Alunos;
SELECT * FROM Professores;
SELECT * FROM Disciplinas;
Consulta 2: Alunos ordenados pelo nome
SQL
SELECT * FROM Alunos
ORDER BY nome_aluno ASC;
Consulta 3: Disciplinas com carga horária maior que 40
SQL
SELECT nome_disciplina, carga_horaria
FROM Disciplinas
WHERE carga_horaria > 40;
Consulta 4: Notas entre 6 e 8
SELECT * FROM Notas
WHERE valor_nota > 6 AND valor_nota < 8;