PC II ETEC Antônio Devisate Aula 02:   Comandos SQL Pesquisas em Múltiplas Tabelas Prof a  Ms.Larissa Pavarini da Luz [ema...
Comandos SQL Pesquisa em Múltiplas Tabelas <ul><li>Vínculo de Informação de dados de várias tabelas de forma a apresentar ...
Comandos SQL União de Tabelas <ul><li>Para realizar a união de tabelas basta acrescentar após a cláusula FROM do comando S...
Comandos SQL   Conceito de Qualificador de Nome <ul><li>O qualificador de nome consiste no nome da tabela seguido de um po...
Comandos SQL Produto Cartesiano <ul><li>Ocorrerá um produto cartesiano sempre que: </li></ul><ul><ul><li>A condição de uni...
Comandos SQL  União de Tabelas <ul><li>Exemplo de produto Cartesiano: </li></ul><ul><li>Select  CD. cod_CD,  CD. Nome,  MU...
Comandos SQL <ul><li>Como existem 3 linhas em CD e 3 linhas em MUSICA, chega a um total de 9 linhas (3*3) na busca. Como s...
Comandos SQL União Regular (inner join) <ul><li>Denomina-se união regular as uniões que têm a cláusula WHERE unindo a chav...
Comandos SQL  União Regular (inner join) <ul><li>Dada as seguintes tabelas: </li></ul>CLIENTE Codigo_cliente Nome_cliente ...
Comandos SQL  União Regular (inner join) <ul><li>Exemplos: </li></ul><ul><li>Ver os pedidos de cada cliente </li></ul><ul>...
Comandos SQL  União Regular (inner join) <ul><li>Ver os pedidos de cada vendedor </li></ul><ul><li>tabelas usadas    pedi...
Comandos SQL  União Regular (inner join) <ul><li>Quais clientes tem prazo de entrega superior a 15 dias e pertencem aos es...
Comandos SQL  União Regular (inner join) <ul><li>Apresentar os clientes e seus respectivos prazos de entrega, ordenados do...
Comandos SQL  União Regular (inner join) <ul><li>Para que não escrever todas as vezes o nome da tabela nas qualificações d...
Comandos SQL  União Regular (inner join) <ul><li>Apresente os vendedores (ordenados) que emitiram pedidos com prazos de en...
Comandos SQL União de mais de duas Tabelas <ul><li>Freqüentemente é necessário unir mais de duas tabelas para fornecer uma...
Comandos SQL  União de mais de duas Tabelas <ul><li>Para resolver este problema será preciso usar as seguintes tabelas: </...
Comandos SQL  União de mais de duas Tabelas Cliente Codigo_cliente Nome_cliente estado = ‘RJ’ Pedido Num_pedido Codigo_cli...
Comandos SQL  União de mais de duas Tabelas <ul><li>Mostre todos os vendedores que venderam chocolate em quantidade superi...
Comandos SQL  União de mais de duas Tabelas <ul><li>Quantos clientes fizeram pedido com o vendedor João? </li></ul><ul><li...
Comandos SQL  União de mais de duas Tabelas <ul><li>Quantos clientes da cidade do Rio de Janeiro e de Niterói tiveram seus...
Upcoming SlideShare
Loading in...5
×

Inner Join

3,871

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,871
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
57
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Inner Join

  1. 1. PC II ETEC Antônio Devisate Aula 02: Comandos SQL Pesquisas em Múltiplas Tabelas Prof a Ms.Larissa Pavarini da Luz [email_address]
  2. 2. Comandos SQL Pesquisa em Múltiplas Tabelas <ul><li>Vínculo de Informação de dados de várias tabelas de forma a apresentar a informação de maneira correta. </li></ul><ul><li>A isto é dado o nome de união de tabelas ( join ). </li></ul><ul><li>A união se dá por meio de chaves primárias e estrangeiras. Elas são as colunas que as tabelas têm em comum. </li></ul>
  3. 3. Comandos SQL União de Tabelas <ul><li>Para realizar a união de tabelas basta acrescentar após a cláusula FROM do comando SELECT as tabelas que se deseja unir. </li></ul><ul><li>Deve-se colocar na Cláusula WHERE a condição de união das tabelas, ou seja, as respectivas chaves primária e estrangeira. </li></ul><ul><li>SINTAXE: </li></ul><ul><li>Select [tabela1.]coluna[,[tabela2.]coluna...] </li></ul><ul><li>from tabela1, tabela2,[...] </li></ul><ul><li>where tabela1.chave_primaria = tabela2.chave_estrangeira; </li></ul>
  4. 4. Comandos SQL Conceito de Qualificador de Nome <ul><li>O qualificador de nome consiste no nome da tabela seguido de um ponto (.) e o nome da coluna na tabela. </li></ul><ul><li>O qualificador de nome para a coluna GRAVADORA da tabela CD será: </li></ul><ul><li>CD .gravadora; </li></ul>
  5. 5. Comandos SQL Produto Cartesiano <ul><li>Ocorrerá um produto cartesiano sempre que: </li></ul><ul><ul><li>A condição de união entre as tabelas for omitida (não houver cláusula where) </li></ul></ul><ul><ul><li>A condição de união entre as tabelas for inválida (cláusula where incorreta) </li></ul></ul><ul><ul><li>Todas as linhas da primeira tabela estiverem unidas a todas as linhas da segunda tabela. </li></ul></ul><ul><ul><ul><li>Nessa situação, as linhas da primeira tabela serão combinadas com as linhas da segunda tabela, demonstrando um resultado na maior parte das vezes indesejado. </li></ul></ul></ul><ul><ul><ul><li>Utilizado apenas para teste de performance </li></ul></ul></ul>
  6. 6. Comandos SQL União de Tabelas <ul><li>Exemplo de produto Cartesiano: </li></ul><ul><li>Select CD. cod_CD, CD. Nome, MUSICA. genero </li></ul><ul><li>From CD, MUSICA; </li></ul>
  7. 7. Comandos SQL <ul><li>Como existem 3 linhas em CD e 3 linhas em MUSICA, chega a um total de 9 linhas (3*3) na busca. Como se nota há um linha de música para cada cd. </li></ul><ul><li>Torna-se assim uma informação incorreta. </li></ul><ul><li>Usa-se muito a cláusula WHERE </li></ul>
  8. 8. Comandos SQL União Regular (inner join) <ul><li>Denomina-se união regular as uniões que têm a cláusula WHERE unindo a chave primária à estrangeira das tabelas afetadas pelo comando SELECT. </li></ul><ul><li>Select CD. cod_CD, CD. Nome, MUSICA. genero </li></ul><ul><li>From CD, MUSICA </li></ul><ul><li>Where CD. cod_cd = MUSICA. cod_cd; </li></ul>
  9. 9. Comandos SQL União Regular (inner join) <ul><li>Dada as seguintes tabelas: </li></ul>CLIENTE Codigo_cliente Nome_cliente Estado cidade PEDIDO Num_pedido Codigo_cliente Codigo_vendedor Prazo_entrega quantidade ITEM_PEDIDO Num_pedido Codigo_produto PRODUTO Codigo_produto descricao VENDEDOR Cod_vendedor Nome_vendedor salario
  10. 10. Comandos SQL União Regular (inner join) <ul><li>Exemplos: </li></ul><ul><li>Ver os pedidos de cada cliente </li></ul><ul><li>tabelas usadas  cliente e pedido </li></ul>
  11. 11. Comandos SQL União Regular (inner join) <ul><li>Ver os pedidos de cada vendedor </li></ul><ul><li>tabelas usadas  pedido e vendedor </li></ul>
  12. 12. Comandos SQL União Regular (inner join) <ul><li>Quais clientes tem prazo de entrega superior a 15 dias e pertencem aos estados de São Paulo (‘SP’) ou Rio de Janeiro (‘RJ’)? </li></ul><ul><li>Comandos utilizados? </li></ul><ul><li>Operadores SQL e Operadores Lógicos </li></ul>
  13. 13. Comandos SQL União Regular (inner join) <ul><li>Apresentar os clientes e seus respectivos prazos de entrega, ordenados do maior para o menor. </li></ul>
  14. 14. Comandos SQL União Regular (inner join) <ul><li>Para que não escrever todas as vezes o nome da tabela nas qualificações de nome, é possível utilizar ALIASES (apelidos) definidos na própria consulta. </li></ul><ul><li>A definição dos ALIASES é feita na cláusula FROM e utilizada normalmente nas outras cláusulas. </li></ul><ul><ul><li>Select, where, group by e etc. </li></ul></ul><ul><li>SELECT C . nome_cliente, P. prazo_entrega </li></ul><ul><li>FROM CLIENTE C , PEDIDO P </li></ul><ul><li>WHERE C . cod_cliente = P . codigo_cliente </li></ul><ul><li>Order by P . prazo_entrega DESC; </li></ul>
  15. 15. Comandos SQL União Regular (inner join) <ul><li>Apresente os vendedores (ordenados) que emitiram pedidos com prazos de entrega superiores a 15 dias e tenham salários fixos iguais ou superiores a R$1.000,00. </li></ul>
  16. 16. Comandos SQL União de mais de duas Tabelas <ul><li>Freqüentemente é necessário unir mais de duas tabelas para fornecer uma informação relevante do BD. </li></ul><ul><li>Exemplo: </li></ul><ul><li>Apresente os clientes (ordenados) que tenham prazo de entrega maior que 15 dias para o produto ‘Queijo’ e sejam do Rio de Janeiro. </li></ul>
  17. 17. Comandos SQL União de mais de duas Tabelas <ul><li>Para resolver este problema será preciso usar as seguintes tabelas: </li></ul><ul><ul><li>Rio de Janeiro  estado de um cliente </li></ul></ul><ul><ul><ul><li>Tabela CLIENTE </li></ul></ul></ul><ul><ul><li>Prazo de entrega tem que ser maior (>) 15  prazo de entrega de um pedido </li></ul></ul><ul><ul><ul><li>Tabela PEDIDO </li></ul></ul></ul><ul><ul><li>Produto é um Queijo  descrição do produto </li></ul></ul><ul><ul><ul><li>Tabela PRODUTO </li></ul></ul></ul><ul><ul><li>Numero do pedido no ITEM </li></ul></ul><ul><ul><ul><li>Tabela ITEM_PEDIDO </li></ul></ul></ul>
  18. 18. Comandos SQL União de mais de duas Tabelas Cliente Codigo_cliente Nome_cliente estado = ‘RJ’ Pedido Num_pedido Codigo_cliente prazo_entrega > 15 Item Pedido Num_pedido Codigo_prod Produto Codigo_prod descrição Queijo
  19. 19. Comandos SQL União de mais de duas Tabelas <ul><li>Mostre todos os vendedores que venderam chocolate em quantidade superior a 10 kg. </li></ul><ul><li> vendedores, produto,pedido, item_pedido </li></ul>
  20. 20. Comandos SQL União de mais de duas Tabelas <ul><li>Quantos clientes fizeram pedido com o vendedor João? </li></ul><ul><li>Cliente, vendedor e pedido </li></ul>
  21. 21. Comandos SQL União de mais de duas Tabelas <ul><li>Quantos clientes da cidade do Rio de Janeiro e de Niterói tiveram seus pedidos tirados com o vendedor João? </li></ul><ul><li>Cliente, pedido e vendedor </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×