create table Professor(
idProf integer not null,
constraint pk_professor primary key(idProf),
profNome varchar(50) not null,
profRua varchar (50) not null,
profCidade varchar(50) not null
);
create table Aluno(
idAluno integer not null,
constraint pk_aluno primary key(idAluno),
alunoNome varchar(50) not null,
alunoRua varchar(50)not null,
alunoCidade varchar(50) not null
);
create table Disciplina(
idDisciplina integer not null,
constraint pk_disciplina primary key(idDisciplina),
discNome varchar(50) not null,
cursoNome varchar(50) not null,
quantAulas integer not null
);
create table Matricula(
idMatricula integer not null,
constraint pk_matricula primary key(idMatricula),
idDisciplina integer not null,
constraint fk_disciplina foreign key (idDisciplina) references Disciplina(idDisciplina),
ano year not null
);
create table ProfDisc(
idProfDisc integer not null,
constraint pk_profdisc primary key(idProfDisc),
idProf integer not null,
constraint fk_idprof foreign key (idProf) references Professor(idProf),
idDisciplina int not null,
constraint fk_idDisc foreign key (idDisciplina) references Disciplina(idDisciplina),
ano year not null
);
/* -----------------------------------------------------------------------------------PROFESSOR--------------------------------------------------------------------------------------------------- */
insert into Professor(idProf, profNome, profRua, profCidade)
values
(1, 'David Caravana de Castro Moraes Ricci', 'Rua A', 'Volta Redonda'),
(2, 'Fabio dos Santos Gonçalves', 'Rua B', 'Volta Redonda'),
(3, 'André Ricardo Prazeres Rodrigues', 'Rua C', 'Volta Redonda'),
(4, 'Nayara Silva de Alcantara', 'Rua D', 'Volta Redonda'),
(5, 'Livia Ferreira Vidal', 'Rua E', 'Volta Redonda');
/* -------------------------------------------------------------------------------------ALUNO----------------------------------------------------------------------------------------------------- */
insert into Aluno(idAluno, alunoNome, alunoRua, alunoCidade)
values
(1, 'João Marcos Novaes Ramos', 'Rua C', 'Volta Redonda'),
(2, 'Filipe Rodrigues de Oliveira', 'Rua G', 'Volta Redonda'),
(3, 'Weight Gabriel', 'Rua I(mensa)', 'Barra Pansa');
/* -----------------------------------------------------------------------------------DISCIPLINA-------------------------------------------------------------------------------------------------- */
alter table Disciplina
add column diaSemana varchar(15);
insert into Disciplina(idDisciplina, discNome, cursoNome, quantAulas, diaSemana)
values
(1, 'Linguagem de Programação', 'Engenharia de Software', 3, 'Segunda-Feira'),
(2, 'Interação Homem-Máquina', 'Engenharia de Software', 2, 'Terca-Feira'),
(3, 'APTA', 'Engenharia de Software', 2,'Terça-Feira'),
(4, 'Banco de Dados', 'Engenharia de Software', 3, 'Quarta-Feira'),
(5, 'Desenvolvimento WEB', 'Engenharia de Software', 4, 'Quinta-Feira'),
(6, 'Low Code', 'Engenharia de Software', 3, 'Sexta-Feira');
/* ------------------------------------------------------------------------------------MATRICULA-------------------------------------------------------------------------------------------------- */
insert into Matricula(idMatricula, idDisciplina, ano)
values
(1001, 1, 2025),
(1002, 2, 2025),
(1003, 3, 2025),
(1004, 4, 2025),
(1005, 5, 2025),
(1006, 6, 2025);
/* ------------------------------------------------------------------------------PROFESSOR POR DISCIPLINA----------------------------------------------------------------------------------------- */
insert into ProfDisc(idProfDisc, idProf, ano, idDisciplina)
values
(1, 3, 2025, 1),
(2, 5, 2025, 2),
(3, 4, 2025, 3),
(4, 1, 2025, 4),
(5, 1, 2025, 5),
(6, 2, 2025, 6);
/* ----------------------------------------------------------------------------------VISUALIZAR QUERY--------------------------------------------------------------------------------------------- */
/* Executar um por vez */
select * from Professor;
select * from Aluno;
select * from Disciplina;
select * from Matricula;
select * from ProfDisc;
/* ----------------------------------------------------------------------------------QUESTÕES 1 - 8----------------------------------------------------------------------------------------------- */
/*QUESTÃO 1- Crie uma consulta com todas as disciplinas oferecidas no ano de 2025,
constando os nomes das disciplinas, nomes e cidades dos professores responsáveis
e nomes dos cursos das disciplinas. */
select Disciplina.discNome, Professor.profNome, Professor.profCidade, Disciplina.cursoNome, ProfDisc.ano
from Professor, Disciplina, ProfDisc
where Professor.idProf = ProfDisc.idProf
and Disciplina.idDisciplina = ProfDisc.idDisciplina;
/*QUESTÃO 2- Crie uma consulta que mostre todos os nomes dos professores do
curso de Engenharia de Software, no ano de 2025, e os nomes das disciplinas pelas
quais são responsáveis. */
select Professor.profNome, Disciplina.cursoNome, Disciplina.discNome, ProfDisc.ano
from Professor, Disciplina, ProfDisc
where Professor.idProf = ProfDisc.idProf
and Disciplina.idDisciplina = ProfDisc.idDisciplina;
/*QUESTÃO 3- Crie uma consulta com todos os nomes de alunos matriculados no ano
de 2025, os nomes das disciplinas em que estão matriculados, a cidade onde moram
e os nomes dos cursos das disciplinas. */
select Aluno.alunoNome, Disciplina.discNome, Disciplina.cursoNome, Aluno.alunoCidade
from Aluno, Disciplina;