SlideShare a Scribd company logo
1 of 9
Aula 001
Banco de Dados II
PRONATEC
Programa Nacional de Acesso ao
Ensino Técnico e Emprego
PRONATEC
Programa Nacional de Acesso
ao Ensino Técnico e Emprego
1. Banco de Dados de Exemplo
• Vamos considerar um banco de dados `empresa´ com as
tabelas `cliente´, `cidade´,`vendedor´ seguindo o DER abaixo:
VENDEDOR CLIENTE CIDADEV-C C-C
1 N N 1
• Vendedor (PK=ID) Cidade (PK=ID)
ID Nome Comissão
1 José da Silva 1,50%
2 Maria Aparecida 3,00%
3 Antônio Costa 1,50%
ID Nome Estado
1 Patos de Minas MG
2 Uberlândia MG
3 São Paulo SP
• Cliente (PK=ID, FK1=cidade, FK2=vendedor)
ID Nome Cidade Vendedor Ultima Venda Vendas
1 Só Argamassas 2 1 José $500,00
2 A Constrular null 3 Maria $300,00
3 Barato Acabamentos 1 2 André $0,00
4 Supermercado Frondoso 3 null Ana $1200,00
2. JOIN
• Até agora quando precisamos consultar ligando duas ou
mais tabelas usávamos a ligação diretamente na cláusula
WHERE. Ex: where cliente.IDC = cidade.ID
• Em alguns casos podemos encontrar problemas neste
tipo de ligação. Por exemplo, se um “cliente” não tem
uma “cidade” ligada a ele, não iria aparecer no resultado
da consulta, que pode ser um erro grave.
• Nesse caso teríamos que informar ao SELECT para
retornar também esses clientes sem cidade.
• Fazemos isso com a cláusula “Join”.
• O JOIN pode ser empregado de várias formas distintas
3. INNER JOIN
• Este é o JOIN mais comum utilizado e sua característica é
só trazer registros que contenham correspondência nas
outras tabelas utilizadas, sendo assim no caso de um
“cliente” sem ligação com “cidade” o cliente não seria
mostrado no resultado
• Exemplo: Mostrar nome do cliente, suas vendas e a
cidade onde está localizado
select cliente.nome, cliente.vendas, cidade.nome
from cliente INNER JOIN cidade ON cidade.id = cliente.idc
• Ou seja, esse comando não mudou nada do nosso
problema: clientes sem cidades ainda não saem
• Então usar INNER JOIN é a mesma coisa que ligar usando
a cláusula WHERE, somente uma forma diferente de fazer
a mesma coisa.
4. LEFT JOIN / RIGHT JOIN
• Este é o JOIN que resolve o nosso problema dos
“clientes” sem “cidades”.
• Exemplo:
select cliente.nome, cliente.vendas, cidade.nome
From cliente LEFT JOIN cidade ON cidade.id = cliente.idc
• O “LEFT” indica de qual tabela você se refere ao estar
querendo o resultado mesmo sem ligação. LEFT em
inglês significa “esquerda” ou seja nos referimos a tabela
da esquerda, que nesse exemplo é a tabela “cliente”
• Podemos ainda usar na forma RIGHT JOIN (da direita)
select cliente.nome, cliente.vendas, cidade.nome
from cidade RIGHT JOIN cliente ON cidade.id = cliente.idc
5. FULL JOIN
• Um problema incomum mas que pode ocorrer é
precisarmos listar tanto os dados do lado esquerdo
(LEFT) que não tenha correspondência com o lado direito
(RIGHT) e vice-versa.
• Nesse caso não podemos usar apenas LEFT ou RIGHT pois
se usarmos o LEFT ficaremos sem o resulto do RIGHT e
vice-versa, então a solução é usar o FULL JOIN que pega
todos os dados mesmo que não se correspondam a
esquerda ou a direita.
6. JOIN Com Chave Composta
• Notamos que para usarmos o JOIN devemos ligar a chave
primária de uma tabela com a estrangeira da outra
• Caso as chaves sejam compostas (mais de um atributo)
então devemos usar o operador lógico AND para a
associação
• Exemplo, no Banco de Dados:
NF (id,serie,data,cliente) Chave Primária: ID, Serie
Itens (nf, serie, codigo, preço, quantidade)
select itens.codigo, itens.preço, itens.quantidade
From nf INNER JOIN itens
ON nf.id = itens.nf AND nf.serie = itens.serie
7. Banco de Dados de Exemplo
• Este é o DER e a estrutura do Banco de Dados que usaremos de
exemplo nas próximas aulas para aprendizado:

More Related Content

Viewers also liked

Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Cláudio Amaral
 
Apostila delphi rad studio 2007
Apostila delphi   rad studio 2007Apostila delphi   rad studio 2007
Apostila delphi rad studio 2007Guilherme Bruno
 
Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Cláudio Amaral
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Cláudio Amaral
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Ryan Padilha
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Ryan Padilha
 
Programação orientada a objetos em delphi
Programação orientada a objetos em delphiProgramação orientada a objetos em delphi
Programação orientada a objetos em delphiHelder Lopes
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Cláudio Amaral
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Ryan Padilha
 
Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Cláudio Amaral
 
Curso de Delphi Fundamental e Logica de Programacao (SABADOS)
Curso de Delphi Fundamental e Logica de Programacao (SABADOS) Curso de Delphi Fundamental e Logica de Programacao (SABADOS)
Curso de Delphi Fundamental e Logica de Programacao (SABADOS) Grupo Treinar
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhiMikeNandes
 

Viewers also liked (20)

Programação aula003
Programação aula003Programação aula003
Programação aula003
 
Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002
 
Programação-Aula004
Programação-Aula004Programação-Aula004
Programação-Aula004
 
Apostila delphi rad studio 2007
Apostila delphi   rad studio 2007Apostila delphi   rad studio 2007
Apostila delphi rad studio 2007
 
Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Sistema Operacional - Pratica001
Sistema Operacional - Pratica001
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
 
Linguagem Delphi-Introdução
Linguagem Delphi-IntroduçãoLinguagem Delphi-Introdução
Linguagem Delphi-Introdução
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
 
Oo delphi
Oo delphiOo delphi
Oo delphi
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Programação orientada a objetos em delphi
Programação orientada a objetos em delphiProgramação orientada a objetos em delphi
Programação orientada a objetos em delphi
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003
 
Curso delphi 7 nova
Curso delphi 7 novaCurso delphi 7 nova
Curso delphi 7 nova
 
Curso de Delphi Fundamental e Logica de Programacao (SABADOS)
Curso de Delphi Fundamental e Logica de Programacao (SABADOS) Curso de Delphi Fundamental e Logica de Programacao (SABADOS)
Curso de Delphi Fundamental e Logica de Programacao (SABADOS)
 
Programação aula001
Programação aula001Programação aula001
Programação aula001
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhi
 

Similar to Banco de Dados II - Aula1

Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de DadosHelder Lopes
 
Download 7951-proposta modelo - elétrica - irwin gomes-85996
Download 7951-proposta modelo - elétrica - irwin gomes-85996Download 7951-proposta modelo - elétrica - irwin gomes-85996
Download 7951-proposta modelo - elétrica - irwin gomes-85996Alex Venancio de Paulo
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#André Luiz
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados RelacionaisMariana Hiyori
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dadosmlima72
 
Treinamento Do Microsoft®Office
Treinamento Do Microsoft®OfficeTreinamento Do Microsoft®Office
Treinamento Do Microsoft®OfficeCristiana Pulquerio
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividadesLauren Goulart
 
LabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:MLabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:MCarlos Santos
 
Planejamento estratégico para escritórios de contabilidade
Planejamento estratégico para escritórios de contabilidadePlanejamento estratégico para escritórios de contabilidade
Planejamento estratégico para escritórios de contabilidadeRoberto Dias Duarte
 
04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dados04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dadosCarlos Santos
 
Formulas excel
Formulas excelFormulas excel
Formulas exceldedpadilha
 
Codificando e-magazine11
Codificando e-magazine11Codificando e-magazine11
Codificando e-magazine11Marcos Paulo
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_erWalter Alves Pereira
 
Webinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcas
Webinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcasWebinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcas
Webinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcasJET e-Commerce
 

Similar to Banco de Dados II - Aula1 (20)

Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de Dados
 
Cadastrar fornecedor-fk01
Cadastrar fornecedor-fk01Cadastrar fornecedor-fk01
Cadastrar fornecedor-fk01
 
Microsoft Access
Microsoft AccessMicrosoft Access
Microsoft Access
 
Sql junções
Sql junçõesSql junções
Sql junções
 
Download 7951-proposta modelo - elétrica - irwin gomes-85996
Download 7951-proposta modelo - elétrica - irwin gomes-85996Download 7951-proposta modelo - elétrica - irwin gomes-85996
Download 7951-proposta modelo - elétrica - irwin gomes-85996
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Treinamento Do Microsoft®Office
Treinamento Do Microsoft®OfficeTreinamento Do Microsoft®Office
Treinamento Do Microsoft®Office
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividades
 
LabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:MLabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:M
 
Planejamento estratégico para escritórios de contabilidade
Planejamento estratégico para escritórios de contabilidadePlanejamento estratégico para escritórios de contabilidade
Planejamento estratégico para escritórios de contabilidade
 
04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dados04 LabMM4 - Bases de dados
04 LabMM4 - Bases de dados
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Codificando e-magazine11
Codificando e-magazine11Codificando e-magazine11
Codificando e-magazine11
 
Banco dedados aula002
Banco dedados aula002Banco dedados aula002
Banco dedados aula002
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Planilha aula 8
Planilha aula 8Planilha aula 8
Planilha aula 8
 
Webinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcas
Webinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcasWebinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcas
Webinar:Outsourcing para e-commerce | viabilizando projetos de grandes marcas
 

More from Cláudio Amaral

More from Cláudio Amaral (16)

Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001
 
Aplicativo aula008
Aplicativo aula008Aplicativo aula008
Aplicativo aula008
 
Aplicativo aula007
Aplicativo aula007Aplicativo aula007
Aplicativo aula007
 
Sistema Operacional - Aula005
Sistema Operacional - Aula005Sistema Operacional - Aula005
Sistema Operacional - Aula005
 
Sistema Operacional - Aula003
Sistema Operacional - Aula003Sistema Operacional - Aula003
Sistema Operacional - Aula003
 
Sistema Operacional - Aula002
Sistema Operacional - Aula002Sistema Operacional - Aula002
Sistema Operacional - Aula002
 
Sistema Operacional - Aula001
Sistema Operacional - Aula001Sistema Operacional - Aula001
Sistema Operacional - Aula001
 
Sistema Operacional - Aula006
Sistema Operacional - Aula006Sistema Operacional - Aula006
Sistema Operacional - Aula006
 
Sistema Operacional - Aula004
Sistema Operacional - Aula004Sistema Operacional - Aula004
Sistema Operacional - Aula004
 
Aplicativo aula03
Aplicativo aula03Aplicativo aula03
Aplicativo aula03
 
Aplicativo aula02
Aplicativo aula02Aplicativo aula02
Aplicativo aula02
 
Aplicativo aula01
Aplicativo aula01Aplicativo aula01
Aplicativo aula01
 
Aplicativo aula05
Aplicativo aula05Aplicativo aula05
Aplicativo aula05
 
Aplicativo aula04
Aplicativo aula04Aplicativo aula04
Aplicativo aula04
 
Banco dedados aula001
Banco dedados aula001Banco dedados aula001
Banco dedados aula001
 
Banco dedados aula003
Banco dedados aula003Banco dedados aula003
Banco dedados aula003
 

Banco de Dados II - Aula1

  • 1. Aula 001 Banco de Dados II PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  • 2. PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  • 3. 1. Banco de Dados de Exemplo • Vamos considerar um banco de dados `empresa´ com as tabelas `cliente´, `cidade´,`vendedor´ seguindo o DER abaixo: VENDEDOR CLIENTE CIDADEV-C C-C 1 N N 1 • Vendedor (PK=ID) Cidade (PK=ID) ID Nome Comissão 1 José da Silva 1,50% 2 Maria Aparecida 3,00% 3 Antônio Costa 1,50% ID Nome Estado 1 Patos de Minas MG 2 Uberlândia MG 3 São Paulo SP • Cliente (PK=ID, FK1=cidade, FK2=vendedor) ID Nome Cidade Vendedor Ultima Venda Vendas 1 Só Argamassas 2 1 José $500,00 2 A Constrular null 3 Maria $300,00 3 Barato Acabamentos 1 2 André $0,00 4 Supermercado Frondoso 3 null Ana $1200,00
  • 4. 2. JOIN • Até agora quando precisamos consultar ligando duas ou mais tabelas usávamos a ligação diretamente na cláusula WHERE. Ex: where cliente.IDC = cidade.ID • Em alguns casos podemos encontrar problemas neste tipo de ligação. Por exemplo, se um “cliente” não tem uma “cidade” ligada a ele, não iria aparecer no resultado da consulta, que pode ser um erro grave. • Nesse caso teríamos que informar ao SELECT para retornar também esses clientes sem cidade. • Fazemos isso com a cláusula “Join”. • O JOIN pode ser empregado de várias formas distintas
  • 5. 3. INNER JOIN • Este é o JOIN mais comum utilizado e sua característica é só trazer registros que contenham correspondência nas outras tabelas utilizadas, sendo assim no caso de um “cliente” sem ligação com “cidade” o cliente não seria mostrado no resultado • Exemplo: Mostrar nome do cliente, suas vendas e a cidade onde está localizado select cliente.nome, cliente.vendas, cidade.nome from cliente INNER JOIN cidade ON cidade.id = cliente.idc • Ou seja, esse comando não mudou nada do nosso problema: clientes sem cidades ainda não saem • Então usar INNER JOIN é a mesma coisa que ligar usando a cláusula WHERE, somente uma forma diferente de fazer a mesma coisa.
  • 6. 4. LEFT JOIN / RIGHT JOIN • Este é o JOIN que resolve o nosso problema dos “clientes” sem “cidades”. • Exemplo: select cliente.nome, cliente.vendas, cidade.nome From cliente LEFT JOIN cidade ON cidade.id = cliente.idc • O “LEFT” indica de qual tabela você se refere ao estar querendo o resultado mesmo sem ligação. LEFT em inglês significa “esquerda” ou seja nos referimos a tabela da esquerda, que nesse exemplo é a tabela “cliente” • Podemos ainda usar na forma RIGHT JOIN (da direita) select cliente.nome, cliente.vendas, cidade.nome from cidade RIGHT JOIN cliente ON cidade.id = cliente.idc
  • 7. 5. FULL JOIN • Um problema incomum mas que pode ocorrer é precisarmos listar tanto os dados do lado esquerdo (LEFT) que não tenha correspondência com o lado direito (RIGHT) e vice-versa. • Nesse caso não podemos usar apenas LEFT ou RIGHT pois se usarmos o LEFT ficaremos sem o resulto do RIGHT e vice-versa, então a solução é usar o FULL JOIN que pega todos os dados mesmo que não se correspondam a esquerda ou a direita.
  • 8. 6. JOIN Com Chave Composta • Notamos que para usarmos o JOIN devemos ligar a chave primária de uma tabela com a estrangeira da outra • Caso as chaves sejam compostas (mais de um atributo) então devemos usar o operador lógico AND para a associação • Exemplo, no Banco de Dados: NF (id,serie,data,cliente) Chave Primária: ID, Serie Itens (nf, serie, codigo, preço, quantidade) select itens.codigo, itens.preço, itens.quantidade From nf INNER JOIN itens ON nf.id = itens.nf AND nf.serie = itens.serie
  • 9. 7. Banco de Dados de Exemplo • Este é o DER e a estrutura do Banco de Dados que usaremos de exemplo nas próximas aulas para aprendizado: