Você está na página 1de 17

Banco de Dados (MySQL)

Relacionamentos
prof.silvano.oliveira@gmail.com
Tabela VEICULO (Repetição)
id placa modelo fabricante ano valor combustivel

1 HHH9999 GOL WV 1998 4000ALCOOL

2 PPP0909 CHEVY GM 1980 5500.4ALCOOL

3 HOW3531 PRISMA GM 2010 10002GASOLINA

4 PST1059 FIT HONDA 2016 69346GASOLINA

5 NNI2233 CIVIC HONDA 2017 112045GASOLINA

6 HWW0091 GOLF WV 2019 99000GASOLINA

7 PWT4627 CLIO RENAULT 2009 19020GASOLINA

Banco de Dados (Prof Silvano) 2


Tabela VEICULO (Repetição)
id placa modelo fabricante ano valor combustivel

1 HHH9999 GOL WV 1998 4000ALCOOL


Tabela Fabricante
2 PPP0909 CHEVY GM 1980 5500.4ALCOOL
id fabricante
3 HOW3531 PRISMA GM 2010 10002GASOLINA 1 WV

4 PST1059 FIT HONDA 2016 69346GASOLINA 2 GM


3 HONDA
5 NNI2233 CIVIC HONDA 2017 112045GASOLINA
4 RENAULT
6 HWW0091 GOLF WV 2019 99000GASOLINA
5 FIAT
7 PWT4627 CLIO RENAULT 2009 19020GASOLINA 6 CITROEN

Mais opções

Banco de Dados (Prof Silvano) 3


Solução da Repetição (Ganho de espaço)

id placa modelo fabricante ano valor combustivel

1 HHH9999 GOL 1 1998 4000ALCOOL

2 PPP0909 CHEVY 2 1980 5500.4ALCOOL

3 HOW3531 PRISMA 2 2010 10002GASOLINA

4 PST1059 FIT 3 2016 69346GASOLINA

5 NNI2233 CIVIC 3 2017 112045GASOLINA

6 HWW0091 GOLF 1 2019 99000GASOLINA

7 PWT4627 CLIO 4 2009 19020GASOLINA

Banco de Dados (Prof Silvano) 4


Cruzar os dados das tabelas (UNIR)
• Select * from veiculo join fabricante
on veiculo.fabricante=fabricante.id;

Banco de Dados (Prof Silvano) 5


id placa modelo fabricante ano valor combustivel id fabricante

1 HHH9999 GOL 1 1998 4000ALCOOL 1 WV

2 PPP0909 CHEVY 2 1980 5500.4ALCOOL 2 GM

3 HOW3531 PRISMA 2 2010 10002GASOLINA 2 GM

4 PST1059 FIT 3 2016 69346GASOLINA 3 HONDA

5 NNI2233 CIVIC 3 2017 112045GASOLINA 3 HONDA

6 HWW0091 GOLF 1 2019 99000GASOLINA 1 WV

7 PWT4627 CLIO 4 2009 19020GASOLINA 4 RENAULT

Banco de Dados (Prof Silvano) 6


Cruzando dados com campos específicos
• select v.placa, v.modelo,
v.combustivel, f.fabricante from
veiculo v join fabricante f on
f.id=v.fabricante;

Banco de Dados (Prof Silvano) 7


placa modelo combustivel fabricante

HHH9999 GOL ALCOOL WV

PPP0909 CHEVY ALCOOL GM

HOW3531 PRISMA GASOLINA GM

PST1059 FIT GASOLINA HONDA

NNI2233 CIVIC GASOLINA HONDA

HWW0091 GOLF GASOLINA WV

PWT4627 CLIO GASOLINA RENAULT

Banco de Dados (Prof Silvano) 8


PROBLEMA
• Incluir um veículo com um código de fabricante que não
existe.
Insert into veiculo
values
(null,'XXX8888','TWINGO',7,2000,20111,'FLEX');

Banco de Dados (Prof Silvano) 9


Vendo o resultado
• Select * from veiculo join fabricante on
veiculo.fabricante=fabricante.id;
id placa modelo fabricante ano valor combustivel id fabricante

1 HHH9999 GOL 1 1998 4000 ALCOOL 1 WV

2 PPP0909 CHEVY 2 1980 5500.4 ALCOOL 2 GM

3 HOW3531 PRISMA 2 2010 10002 GASOLINA 2 GM

4 PST1059 FIT 3 2016 69346 GASOLINA 3 HONDA

5 NNI2233 CIVIC 3 2017 112045 GASOLINA 3 HONDA

6 HWW0091 GOLF 1 2019 99000 GASOLINA 1 WV

7 PWT4627 CLIO 4 2009 19020 GASOLINA 4 RENAULT

Banco de Dados (Prof Silvano) 10


Solução do Problema anterior
• Vincular as tabelas para que não haja inclusão sem que
exista correspondente.

Banco de Dados (Prof Silvano) 11


Chave Estrangeira
• A finalidade da Chave Estrangeira é vincular duas
tabelas para que as mesmas não permitam a quebra de
integridade, ou seja, dados perdidos.
• Usa-se a cláusula FOREIGN KEY, semelhante a PRIMARY
KEY.

Banco de Dados (Prof Silvano) 12


FOREIGN KEY
alter table veiculo add
foreign key (fabricante) references
fabricante(id);

Banco de Dados (Prof Silvano) 13


Exercício
• Criar o banco de dados e suas tabelas
• Criar o relacionamento de Chave Estrangeira entre as tabelas
• Inserir os dados nas tabelas. (Primeiramente os da tabela
CURSO)
Banco de Dados: ESCOLA

Banco de Dados (Prof Silvano) 14


Tabela ALUNO

ID NOME BAIRRO CURSO VALOR_PAGO DATA_INICIO


1 FULANO DA SILVA COHAB 2 100 2019-07-13
2 CICRANO BORGES COHAMA 4 120 2019-03-01
3 BELTRANO JORGE COHAJAP 4 211 2019-04-22
4 FRANCISCO AGUIAR CENTRO 3 130 2019-05-20
5 MARIA DA PAZ ANJO DA GUARDA 7 99 2018-12-31
6 HELENA DE TROIA TIBIRI 1 38 2018-11-11
7 SILVIA PFEIFER SÃO CRISTOVAO 2 75 2019-08-03

Banco de Dados (Prof Silvano) 15


Tabela CURSO
ID CURSO
1 INFORMATICA
2 ELETROTECNICA
3 MECATRONICA
4 MECANICA
5 SEGURANCA DO TRABALHO
6 ELETRONICA
7 NR10

Banco de Dados (Prof Silvano) 16


Faça o que se pede:
• Fazer as seguintes consultas:
• LISTAR TODOS OS ALUNOS
• LISTAR SOMENTE OS ALUNOS DO CURSO MECANICA
• LISTAR QUANTOS ALUNOS ESTÃO MATRICULADOS POR CURSO
• MOSTRAR O TOTAL DO VALOR PAGO POR CURSO, MOSTRANDO
SOMENTE O NOME DO CURSO E O VALOR
• MOSTRAR TODOS OS ALUNOS QUE INICIARAM EM 2018, MAS
SOMENTE OS CAMPOS NOME, BAIRRO E CURSO (NÃO O ID, MAS O
NOME DO CURSO)
• MOSTRAR TODOS OS CURSOS QUE POSSUEM ALUNOS

Banco de Dados (Prof Silvano) 17

Você também pode gostar