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.
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