Arquivo

Textos com Etiquetas ‘join’

Junções e Joins

2, outubro, 2009 Sem comentários

Veremos neste artigo, como o motor interage com Junções e explicar cada opção da “junção”/joins.

Pois bem, começaremos explicando o que acontece no motor do InterBase quando o usuário solicita ao InterBase a junção.

Quando o usuário/administrador do Banco de dados pede ao InterBase para realizar a junção, usando, digamos o exemplo mais simples de JOIN:

SELECT UF,NOME FROM TABLEA INNER JOIN TABLEB ON UF = SIGLA

O InterBase antes de processar a recuperação de Dados da Tabela, ele precisará fazer uma combinação das Fontes de Dados entre as duas tabelas “neste caso” acima descritas. Após a combinação de Colunas o InterBase combina cada linha da primeira tabela com todas as linhas da segunda tabela. Após está busca, o InterBase começará buscar as informações “Dados” nas tabelas e levar ao Result Set os dados em forma de Junção. Está combinação também é chamada de Produto Cartesiano.

Ok. Explicado o que acontece no motor/bastidores do InterBase vamos agora mostras as opções de JOIN.

Existe dois tipos de JOIN. Vamos explicar o que é cada uma.

1. INNER JOIN – Liga em linhas, baseando-se em condições de ligação e, somente retornará as linhas que realmente se combinam entre si. O INNER JOIN contém três tipos:

. EQUI-JOINS – Comparação = “igual”;
. Non-EQUI-JOINS – Não comparação. “>, <, >=, <=, <>”;
. Reflexive Joins – Sobre si próprio.

2. OUTER JOIN – Liga as linhas de tabelas, mas, não necessariamente precisam casar entre si para aparecer no Result Set. Desta forma, mesmo as linhas que não se encontrou referência no cruzamento das tabelas aparecerá no resultado de dados.

Existem três tipos de OUTER JOIN´s, são eles:

. LEFT OUTER JOIN;
. RIGHT OUTER JOIN;
. FULL OUTER JOIN;

Sendo que:

. LEFT OUTER JOIN – Diz ao motor do InterBase, que todas as linhas da tabela à esquerda, serão recuperadas. Independente de casarem ou não com o identificado ON;
. RIGHT OUTER JOIN – Diz ao motor do InterBase, que todas as linhas da tabela à direita, serão recuperadas. Independente de casarem ou não com o identificado ON;
. FULL OUTER JOIN – Diz ao motor do InterBase, para fazer um balanceamento do que atente e o que não atende na requisição de consulta.

Observações

É bom salientar também que pode haver uma queda de performance, se não houver alguns cuidados de Otimização de Consulta.

É recomendável, apelidar as tabelas envolvidas em Join´s explícitos e ou não explícitos, para uma melhor compreensão das tabelas envolvidas e também evitar Ambiguidade de colunas.

Fonte: http://www.htmlstaff.org/ver.php?id=1191

Categories: Geral Tags: , ,