Exercício adicional 29/07 - Universidade 2

Ir em baixo

Exercício adicional 29/07 - Universidade 2

Mensagem por Admin em Seg Jul 29, 2013 1:04 pm


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'


Admin
Admin

Mensagens : 123
Data de inscrição : 01/07/2013

Ver perfil do usuário http://geracaotecjava.forumbrasil.net

Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum