A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Elaboração de Consultas 3 de abril de 2006. Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos.

Apresentações semelhantes


Apresentação em tema: "Elaboração de Consultas 3 de abril de 2006. Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos."— Transcrição da apresentação:

1 Elaboração de Consultas 3 de abril de 2006

2 Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos cadastrados 1. Select nm_cliente, nm_contato FROM cliente, contato

3 Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente 1-1 registro C1 : Listar os clientes que tem contatos cadastrados 2. Select nm_cliente, nm_contato FROM cliente, contato WHERE cliente.cd_cliente = contato.cd_cliente 5 registros 15 registros Junção na Igualdade

4 Junções Junção Natural Junção na Igualdade Auto - Junção Junção Externa

5 Junções segundo padrão SQL INNER LEFT [OUTER] RIGHT [OUTER] FULL [OUTER] Obs. cross join equivale ao Produto cartesiano !

6 Sintaxe geral de select SELECT [ALL | DISTINCT ] lista_campos FROM tabela1 tipo_JOIN tabela 2 ON tabela1.cd = tabela2.cd [ tipo_JOIN tabela3 ON tabela3.cd = tabela2.cd]

7 Cross Join ( Produto cartesiano) SELECT nome_func, nome_depto, FROM funcionario, depto; SELECT nome_func, nome_depto, FROM funcionario CROSS JOIN depto;

8 Produto Cartesiano CLIENTECONTATO C1 : Listar os clientes que tem contatos cadastrados 1, Maria 2, Joelma 3, Carlos 4, Andre Cd-cliente, cd-contato, nm_contatoCd-cliente, nm_cliente 1, 1, Aldeny 1, 2, Jose 3, 1, Antonio 3, 2, Ildefonso 16 registros Maria, Aldeny Maria, Jose Maria, Antonio Maria, Ildefonso Joelma, Aldeny Joelma, Jose Joelma, Antonio Joelma, Ildefonso,... SELECT nm_cliente, nm_contato FROM cliente CROSS JOIN contato

9 Natural Join ( Junção Natural) SELECT nome_func, nome_depto, FROM funcionario f, depto d WHERE d.cd_depto = f.cd_depto SELECT nome_func, nome_depto, FROM funcionario NATURAL JOIN depto; Campos de nome igual entre as tabelas serão condição de junção

10 NATURAL JOIN CLIENTECONTATO C1 : Listar os clientes que tem contatos cadastrados 1, Maria 2, Joelma 3, Carlos 4, Andre Cd-cliente, cd-contato, nm_contatoCd-cliente, nm_cliente 1, 1, Aldeny 1, 2, Jose 3, 1, Antonio 3, 2, Ildefonso Maria, Aldeny Maria, Jose Carlos, Antonio Carlos, Ildefonso SELECT nm_cliente, nm_contato FROM cliente NATURAL JOIN contato

11 INNER JOIN ( Junção na Igualdade) SELECT nome_func, nome_depto, FROM funcionario f, depto d WHERE d.cd_depto = f.cd_depto SELECT nome_func, nome_depto, FROM funcionario f INNER JOIN depto d ON d.cd_depto = f.cd_depto

12 INNER JOIN... ON... CLIENTECONTATO C1 : Listar os clientes que tem contatos cadastrados 1, Maria 2, Joelma 3, Carlos 4, Andre Cd-cliente, cd-contato, nm_contatoCd-cliente, nm_cliente 1, 1, Aldeny 1, 2, Jose 3, 1, Antonio 3, 2, Ildefonso Maria, Aldeny Maria, Jose Carlos, Antonio Carlos, Ildefonso SELECT nm_cliente, nm_contato FROM cliente INNER JOIN contato ON ( cliente.cd_cliente = contato.cd_cliente)

13 INNER JOIN 2( Junção na Igualdade) SELECT nome_func, nome_depto, FROM funcionario f, depto d WHERE d.cd_depto = f.cd_depto SELECT nome_func, nome_depto, FROM funcionario f INNER JOIN depto d USING (cd_depto) Campos de nome igual permitem o USING

14 INNER JOIN... USING... CLIENTECONTATO C1 : Listar os clientes que tem contatos cadastrados 1, Maria 2, Joelma 3, Carlos 4, Andre Cd-cliente, cd-contato, nm_contatoCd-cliente, nm_cliente 1, 1, Aldeny 1, 2, Jose 3, 1, Antonio 3, 2, Ildefonso Maria, Aldeny Maria, Jose Carlos, Antonio Carlos, Ildefonso SELECT nm_cliente, nm_contato FROM cliente INNER JOIN contato USING(cd_cliente)

15 Modelo

16 Tratamento de N tabelas com JOIN Listar nome do cliente e nome dos produtos por ele comprados ? Atributos : nm_cliente, de_item Tabelas: Cliente, Pedido, Item_pedido

17 INNER JOIN... CLIENTEPEDIDO 1, Maria 2, Joelma 3, Carlos 4, Andre Cd-cliente, nr_pedido Cd-cliente, nm_cliente 1, 1 1, 2 3, 3 3, 4 SELECT nm_cliente, de_item FROM cliente INNER JOIN pedido USING (cd_cliente) INNER JOIN item_pedido USING (nr_pedido) ITEM_PEDIDO nr_pedido,nr_item,de_item 1, 1, caneta 1,2,lapis 2,1, camiseta 2, 2, sapato 3,1,tinta 3,2,areia 4,1,pincel (1) (2)


Carregar ppt "Elaboração de Consultas 3 de abril de 2006. Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos."

Apresentações semelhantes


Anúncios Google