0
respostas

[Projeto] 05. Mão na massa: gerenciamento escolar com banco de dados relacional

-- 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;

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora