Exercício adicional 29/07 - Universidade 2
Página 1 de 1
Exercício adicional 29/07 - Universidade 2
Para os exercícios desta aula, é necessário se conectar à base chamada 'universidade'
Quem quiser fazer em casa, vai precisar criar uma nova base de dados e rodar os seguintes comandos:
- Código:
CREATE TABLE professor (
codigo_professor SERIAL NOT NULL PRIMARY KEY,
matricula_professor NUMERIC(10) NOT NULL,
nome_professor VARCHAR(100) NOT NULL
);
CREATE TABLE aluno (
cod_aluno SERIAL NOT NULL PRIMARY KEY,
matricula_aluno NUMERIC(10),
nome_aluno VARCHAR(100) NOT NULL
);
CREATE TABLE curso (
codigo_curso SERIAL NOT NULL PRIMARY KEY,
nome_curso VARCHAR(100) NOT NULL,
codigo_professor_chefe INTEGER
REFERENCES professor(codigo_professor)
);
CREATE TABLE disciplina (
codigo_disciplina SERIAL NOT NULL PRIMARY KEY,
nome_disciplina VARCHAR(100) NOT NULL,
ementa TEXT,
carga_horaria_disciplina NUMERIC(4) NOT NULL,
codigo_professor INTEGER NOT NULL
REFERENCES professor(codigo_professor)
);
CREATE TABLE sala (
codigo_sala SERIAL NOT NULL PRIMARY KEY,
numero_sala VARCHAR(100) NOT NULL
);
CREATE TABLE curso_disciplina (
codigo_curso INTEGER NOT NULL,
codigo_disciplina INTEGER NOT NULL,
PRIMARY KEY (codigo_curso, codigo_disciplina),
FOREIGN KEY (codigo_curso) REFERENCES curso(codigo_curso),
FOREIGN KEY (codigo_disciplina)
REFERENCES disciplina(codigo_disciplina)
);
CREATE TABLE aluno_disciplina (
cod_aluno INTEGER NOT NULL,
codigo_disciplina INTEGER NOT NULL,
PRIMARY KEY (cod_aluno, codigo_disciplina),
FOREIGN KEY (cod_aluno) REFERENCES aluno(cod_aluno),
FOREIGN KEY (codigo_disciplina)
REFERENCES disciplina(codigo_disciplina)
);
CREATE TABLE disciplina_sala (
codigo_disciplina INTEGER NOT NULL,
codigo_sala INTEGER NOT NULL,
PRIMARY KEY (codigo_disciplina, codigo_sala),
FOREIGN KEY (codigo_disciplina)
REFERENCES disciplina(codigo_disciplina),
FOREIGN KEY (codigo_sala) REFERENCES sala(codigo_sala)
);
INSERT INTO professor (matricula_professor, nome_professor)
VALUES ('123', 'Girafalez');
INSERT INTO professor (matricula_professor, nome_professor)
VALUES ('234', 'Raimundo');
INSERT INTO aluno (matricula_aluno, nome_aluno)
VALUES ('111', 'Chaves');
INSERT INTO aluno (matricula_aluno, nome_aluno)
VALUES ('222', 'Kiko');
INSERT INTO aluno (matricula_aluno, nome_aluno)
VALUES ('333', 'Chiquinha');
INSERT INTO aluno (matricula_aluno, nome_aluno)
VALUES ('444', 'Galeão Cumbica');
INSERT INTO aluno (matricula_aluno, nome_aluno)
VALUES ('555', 'Seu Boneco');
INSERT INTO aluno (matricula_aluno, nome_aluno)
VALUES ('666', 'Zé Bonitinho');
INSERT INTO curso (nome_curso, codigo_professor_chefe)
VALUES ('Piadas velhas', 2);
INSERT INTO curso (nome_curso, codigo_professor_chefe)
VALUES ('Piadas infames', 2);
INSERT INTO curso (nome_curso, codigo_professor_chefe)
VALUES ('Historia del Mexico!', 1);
insert into disciplina (nome_disciplina, ementa, carga_horaria_disciplina, codigo_professor)
values ('Trocadilhos I', 'xxxx', 40, 1);
insert into disciplina (nome_disciplina, ementa, carga_horaria_disciplina, codigo_professor)
values ('Trocadilhos II', 'xxxx', 60, 1);
insert into disciplina (nome_disciplina, ementa, carga_horaria_disciplina, codigo_professor)
values ('Desenvolvimento de bordões', 'xxxx', 80, 1);
insert into disciplina (nome_disciplina, ementa, carga_horaria_disciplina, codigo_professor)
values ('Aiaiai!', 'xxxx', 20, 1);
insert into disciplina (nome_disciplina, ementa, carga_horaria_disciplina, codigo_professor)
values ('Ai caramba I', 'xxxx', 20, 2);
insert into disciplina (nome_disciplina, ementa, carga_horaria_disciplina, codigo_professor)
values ('Ai caramba II', 'xxxx', 20, 2);
INSERT INTO sala(numero_sala)
VALUES ('1');
INSERT INTO sala(numero_sala)
VALUES ('2');
INSERT INTO curso_disciplina(codigo_curso, codigo_disciplina)
values (2,1);
INSERT INTO curso_disciplina(codigo_curso, codigo_disciplina)
values (2,2);
INSERT INTO curso_disciplina(codigo_curso, codigo_disciplina)
values (2,3);
INSERT INTO curso_disciplina(codigo_curso, codigo_disciplina)
values (3,4);
INSERT INTO curso_disciplina(codigo_curso, codigo_disciplina)
values (3,5);
INSERT INTO curso_disciplina(codigo_curso, codigo_disciplina)
values (3,6);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(1, 5);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(1, 6);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(2, 4);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(2, 5);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(2, 6);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(3, 4);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(3, 5);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(4, 1);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(4, 2);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(4, 3);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(5, 2);
insert into aluno_disciplina(cod_aluno, codigo_disciplina)
values(5, 3);
As questões são:
1- Faça um SELECT que retorne o nome de cada um dos cursos seguidos do nome de seu professor chefe
2 - Faça um SELECT que retorne o nome de todos os alunos que fazem a disciplina 'Piadas infames'
3 - Faça um SELECT que liste o nome de todas as disciplinas ministradas pelo professor chamado 'Raimundo'
4 - Faça um SELECT que liste o nome de todas as disciplinas cursadas pelo aluno 'Chaves'
(desafio) 5 - Faça um SELECT que retorne o nome de todos os alunos que tem aula com o professor 'Girafalez'
6 - Faça um SELECT que retorne o nome de todos os cursos chefiados pelo professor 'Raimundo'
7 - Faça um SELECT que liste o nome de todos os alunos que cursam a disciplina 'Trocadilhos I'
Tópicos semelhantes
» Exercício adicional 23/08 - Veículos
» Exercício adicional 25/07 - Hospital
» Exercício adicional 21/08
» Exercício adicional 22/08 - Herança
» Exercício adicional 22/08 - Sobrescrita
» Exercício adicional 25/07 - Hospital
» Exercício adicional 21/08
» Exercício adicional 22/08 - Herança
» Exercício adicional 22/08 - Sobrescrita
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos