O Banco de dados
Por: carolkochinski • 7/5/2016 • Trabalho acadêmico • 371 Palavras (2 Páginas) • 184 Visualizações
- Crie o esquema de banco de dados relacional apresentado a seguir, que representa o conjunto de estudantes de uma universidade que podem, ou não, morar em repúblicas. Crie as tabelas e chave primária.
[pic 1]
- Crie as constraints de reference em todos os relacionamentos.
create table Pessoa(
idPessoa varchar2(4) not null,
nome varchar2(40) not null,
endereco varchar2(40) not null,
constraint pk_pessoa primary key (idPessoa));
create table fonepessoa(
idPessoa varchar2(4) not null,
ddd varchar2(2) not null,
prefixo varchar2(4) not null,
numero varchar2(4) not null,
constraint pk_fonePessoa primary key(idPessoa, ddd, prefixo, numero),
constraint fk_fonePessoa foreign key(idPessoa) references Pessoa(idPessoa));
create table republica(
idRep number(4) not null,
nome varchar2(40) not null,
endereco varchar2(2) not null,
constraint pk_republica primary key(idRep));
create table estudante(
idEstudante number(4) not null,
email varchar2(40) not null,
idPessoa varchar2(4) null,
idRep number(4) null,
constraint pk_estudante primary key(idEstudante),
constraint fk_pessoa foreign key(idPessoa) references Pessoa(idPessoa),
constraint fk_rep foreign key(idRep) references republica(idRep));
- Crie registros nas tabelas:
- Estudante – um registro para cada pessoa, para os estudantes moram em casa, o campo idRep será null.
- FonePessoa – mínimo 5 registros, sendo 1 telefone para cada pessoa e algumas pessoas com mais de um telefone.
- Pessoa – mínimo 4 registros.
- Republica – mínimo 2 registros.
INSERT INTO PESSOA VALUES (1, 'Ana', 'JK');
INSERT INTO PESSOA VALUES (2, 'Mariana', 'JK');
INSERT INTO PESSOA VALUES (3, ‘Pedro', 'JK');
INSERT INTO PESSOA VALUES (4, 'Carol', 'JK');
INSERT INTO PESSOA VALUES (5, 'Antonio', 'JK');
INSERT INTO FONEPESSOA VALUES (1, '43', '3356', '5656');
INSERT INTO FONEPESSOA VALUES (1, '43', '3399', '9909');
INSERT INTO FONEPESSOA VALUES (2, '43', '3301', '1115');
INSERT INTO FONEPESSOA VALUES (3, '43', '3301', '1015');
INSERT INTO FONEPESSOA VALUES (4, '43', '3301', '1415');
INSERT INTO REPUBLICA VALUES (1, 'Casa', 'Republica’ );
INSERT INTO ESTUDANTE VALUES (1, 'Ana@unifil.br' ,1, NULL);
INSERT INTO ESTUDANTE VALUES (2, 'mariana@unifil.br' ,5, NULL);
INSERT INTO ESTUDANTE VALUES (3, 'pedro@unifil.br' ,2, NULL);
INSERT INTO ESTUDANTE VALUES (4, 'carol@unifil.br' ,4, 1);
INSERT INTO ESTUDANTE VALUES (5, 'antonio@unifil.br' ,3, 1);
- Crie comandos select para:
- mostrar a quantidade de estudantes por república. (utilize group by)
Exemplo:
REPÚBLICA | QTD |
MARACANA | 1 |
REI PELE | 2 |
- selecionar pessoas por nome, mostrar idpessoa, nome e endereco. (utilize like)
- mostrar estudantes que moram em casa, mostrar idestudante, email, nome e endereço. Ordenar por nome.
- Mostrar o telefone das pessoas. Ordenar por nome.
select * from PESSOA WHERE NOME LIKE '%a%'
‘
...