Arquivo

Textos com Etiquetas ‘sql’

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: , ,

Biblioteca de conexão.

22, setembro, 2009 Sem comentários

Quando comecei a programar em .NET eu utilizava o VS 2003. Fui a um evento da Microsoft, o PDC 2004, e lá em uma palestra nos passaram uma biblioteca de conexão com banco de dados chamada SQL Helper, eu utilizei a mesma em alguns projetos, mas depois que comecei a utilizar o VS 2005 com o Framework 2.0 essa biblioteca ficou obsoleta, então eu resolvi pergar as funções mais importantes, e resumi em uma biblioteca mais enxuta.

A Biblioteca possui 3 classes, são elas:

  • MSSQL – Conexão com SQL Server
  • Oracle – Conexão com Oracle
  • ODBC – Conexão ODBC genérica

Todas as classes possuem as seguintes funções:

  • ExecutarLeitura – Função que retorna um SqlDataReader para leitura.
  • ExecutarNonQuery – Função para executar uma query SQL que não precisa retornar nada.
  • ExecutarScalar – Função que executa uma query SQL e retorna um valor Long.
  • CarregarDataSet – Função que retorna um DataSet com uma DataTable populada de acordo com a query SQL informada.
  • CarregarDataTable – Função que retorna somente uma DataTable de acordo com a query SQL informada.

Utilização:

Carregando um DataTable.

With new Conexao

tbUsuario = .CarregarDataTable(“SELECT * FROM USUARIO”)

.Fechar <– não se esqueça de chamar o método para fechar a conexão com o banco.

End With

Executando uma query simples.

With new Conexao

.ExecuteNonQuery(“DELETE FROM USUARIO WHERE ID = 3”)

.Fechar

End With

Para baixar a biblioteca, utilize o link abaixo:

Conexao

Categories: VB.NET Tags: , , , ,