Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Diferenças entre EXISTE & IN em SQL
Um desafio persistente no uso de SQL é que determinam o uso adequado do existe e operadores. Os dois operadores podem produzir os mesmos resultados , mas nem sempre o fazem . Além disso, há um debate substancial sobre como cada operador é otimizada para velocidade . Os usuários devem entender os diferentes atributos de cada operador e experimentar os dois para determinar a função apropriada. Operador

O operador IN retorna uma linha se um valor table.field ONDE condicionado corresponde a uma lista de valores em . IN é normalmente usado como parte de uma consulta principal ou em conjunto com uma subconsulta

Exemplo 1: . ONDE table.field em ('a' , 'b' , 'c ')

exemplo 2: ONDE table.field em ( conjunto de retorno de subconsulta de valores ),
EXISTE operador

o operador EXISTS retorna todas as linhas da consulta principal, se a subconsulta contém nenhuma linha.

existe apenas é utilizada em conjunção com um sub-consulta. Linhas retornadas são determinados pela filtragem ao nível da consulta principal. Exemplo: ONDE EXISTE ( conjunto de retorno de subconsulta de valores)
Diferença

IN não pode avaliar nulos , então as linhas são sempre falsas , e não voltou .

EXISTE pode avaliar nulos , então as linhas podem ser devolvidos.
Semelhanças

existe e tanto apoio subqueries correlacionados e não correlacionados , e tanto pode produzir principais resultados semelhantes. Quando correlacionados, existe e jogo um campo de consulta principal para um campo de subconsulta (ex: main.id = subquery.id ) . A subconsulta avalia linha por linha , para cada correspondência encontrada. Neste caso, IN e EXISTS retornará as mesmas linhas com base em partidas ID similares. Quando não correlacionados , existe e processo de seus subconsultas em primeiro lugar, em seguida, combinar resultados para a consulta principal .
Desempenho de EXISTS e IN

desempenho é determinado pelo banco de dados otimizador eo plano de execução que emprega para o código executado. Para EXISTS e IN, o otimizador pode escolher caminhos diferentes. No Oracle , isso é NÃO EXISTE evitar um anti- join, e, normalmente, provando mais rápido do que NOT IN. No final, algumas tentativas e erros é necessário para aferir o caminho mais curto , dependendo da base de dados e que é a versão que está sendo usado . Certifique-se de usar o operador que garante os resultados corretos em primeiro lugar, em seguida, se tudo é o mesmo , tente substituir existe e realmente ver que é mais rápido .

Anterior :

Próximo : No
  Os artigos relacionados
·Como analisar um ArrayCollection 
·Como passar Data Variáveis ​​Dinâmicas em SSIS 
·Como escrever um arquivo de Efeito para XNA Games 
·Princípios de Programação por Restrições 
·Como fazer um botão de reset no Roblox 
·VBScript : Como redefinir o tamanho da caixa de correio…
·Como o código em Pascal 
·Como ocultar o Dojo Nó de árvore 
·Como estimar Funções de transferência de sistemas fí…
·Diferenças entre Estruturas e Classes 
  Artigos em destaque
·Como se conectar a um emulador do Windows Phone 7 
·Como usar o Visual C + + Debugger 
·Como prevenir vazamentos de memória em C + + 
·Como escrever um programa em C para a multiplicação d…
·Como usar ponteiros de função em um binário Pesquisa…
·Como criar um aplicativo de console C , que atua como u…
·Como usar uma variável de seqüência de conexão no S…
·Como adicionar duas matrizes para uma Terceira 
·Quais são as diferenças entre C -Pascal e Linguagem C…
·Como retornar um ponteiro para um vetor 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados