Você está na página 1de 3

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA

PARAÍBA
Campus Campina Grande
DISCIPLINA: Banco de Dados
PROFESSORA: Samara Martins Nascimento

ALUNO(A): ____________________________________________ DATA: ___________

SQL – Parte 3

Para responder as consultas abaixo, considere a execução dos scripts seguintes.


CREATE TABLE aluno(
matricula integer primary key,
nome character varying(100),
data_nascimento date,
rua character varying(100),
numero integer,
bairro character varying(50) );

CREATE TABLE disciplina(


codigo integer primary key,
nome character varying(100),
carga_horaria integer);

CREATE TABLE professor (


matricula integer primary key,
nome character varying(100),
data_nascimento date,
rua character varying(100),
numero integer,
bairro character varying(50) );

CREATE TABLE professor_disciplina(


matricula integer,
codigo_disciplina integer,
foreign key (matricula) references professor(matricula),
foreign key (codigo_disciplina) references disciplina(codigo) );

CREATE TABLE aluno_prof_disc(


matricula_prof integer,
matricula_aluno integer,
codigo_disciplina integer,
nota double precision,
foreign key (matricula_prof) references professor(matricula),
foreign key (matricula_aluno) references aluno(matricula),
foreign key (codigo_disciplina) references disciplina(codigo));
CREATE TABLE empregado(
matricula integer primary key,
nome varchar(100) not null,
titulacao varchar(100),
salario double precision,
check (salario > 1500 and salario < 10000));

CREATE TABLE departamento(


codigo integer primary key,
nome varchar(100) unique);

CREATE TABLE empregado_departamento(


codigo integer,
matricula integer,
foreign key (codigo) references departamento(codigo),
foreign key (matricula) references empregado(matricula));

alter table empregado add cargo varchar(50) default 'servidor';


insert into aluno (matricula, nome, data_nascimento, rua, numero, bairro) values
('123456', 'Maria', '18/10/1997', 'Rua 1', 19, 'Dinamérica'),
('999999', 'José', '17/09/1997', 'Rua 2', 20, 'Dinamérica'),
('777777', 'João', '14/08/1997', 'Rua 3', 21, 'Dinamérica'),
('654321', 'Rosa', '08/10/1997', 'Rua 4', 22, 'Dinamérica');
insert into professor (matricula, nome, data_nascimento, rua, numero, bairro) values
('789654', 'Felicia', '20/10/1980', 'Rua 5', 19, 'Dinamérica'),
('888888', 'Pablo', '18/01/1980', 'Rua 6', 20, 'Dinamérica'),
('555555', 'Ingrid', '15/03/1980', 'Rua 7', 21, 'Dinamérica'),
('654321', 'Marcelo', '02/10/1980', 'Rua 8', 22, 'Dinamérica');
insert into disciplina (codigo, nome, carga_horaria) values
(01, 'Banco de Dados', 80),
(02, 'POO', 80);
insert into professor_disciplina (matricula, codigo_disciplina) values
('789654', 01),
('888888', 02);
insert into aluno_prof_disc(matricula_aluno, matricula_prof, codigo_disciplina, nota) values
('123456', '789654',01,80),
('123456', '888888',02,70),
('999999', '789654',01,50),
('999999', '888888',02,100);
insert into empregado (matricula, nome) (select matricula, nome from professor);
insert into departamento (codigo, nome) values
(01,'Informática'),
(02,'Mineração');
insert into empregado_departamento (codigo, matricula) values
(1,'789654'),
(1,'888888');
UPDATE empregado SET titulacao='Mestre' where nome='Felicia';
UPDATE empregado SET titulacao='Mestre' where nome='Pablo';
UPDATE empregado SET titulacao='Doutor' where nome='Ingrid' or nome='Marcelo';
UPDATE empregado SET salario=8000 where nome='Felicia' or nome='Pablo';
Dessa forma, faça:

1. Liste os nomes, de forma distinta, dos bairros de todos os professores, que lecionam disciplinas
atualmente.
2. Liste as matriculas e os nomes dos alunos que começam com Jo.
3. Liste a matricula do aluno, o nome do aluno, o nome do professor e a nota da disciplina de
Banco de Dados.
4. Liste os nomes dos alunos que nasceram entre 01/09/1997 e 01/11/1997.
5. Liste de forma descendente as matrículas e nomes dos professores.
6. Liste o nome dos professores e os nomes dos respectivos departamentos ao qual eles estão
vinculados.
7. Mostre a soma dos salários dos professores vinculados ao departamento de informática.
8. Selecione o número do departamento que tem a empregada Felicia.

Você também pode gostar