| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Computer Programmeringssprog >> Content
    Forskelle mellem EXISTS & IN i SQL
    En vedvarende udfordring i at bruge SQL er at fastlægge den korrekte brug af de eksisterer, og IN aktører. De to operatører kan producere de samme resultater , men ikke altid gør det. Også, der er betydelig debat om, hvor hver enkelt operatør er optimeret til hastighed. Brugerne skal forstå de forskellige attributter i hver enkelt erhvervsdrivende og prøve begge til at bestemme den relevante funktion. IN Operator

    IN operatør returnerer en række, hvis en WHERE konditioneret table.field værdi matcher en liste med IN værdier. IN anvendes typisk som en del af en hovedforespørgslen eller i forbindelse med en underforespørgsel

    Eksempel 1: . WHERE Table.Field in ( 'a ', ' b' , 'c' )

    Eksempel 2: WHERE Table.Field in ( Underforespørgsler tilbagevenden sæt af værdier)
    EXISTS Operator

    EXISTS operatør returnerer alle hovedforespørgslen rækker , hvis underforespørgslen indeholder nogen rækker.

    EXISTS bruges kun i forbindelse med en underforespørgsel . Rækker returneret bestemmes ved at filtrere på de vigtigste forespørgslen niveau . Eksempel: WHERE EXISTS ( Underforespørgsler tilbagevenden sæt af værdier)
    Forskel

    kan ikke vurdere nuller , så de rækker altid er falsk, og ikke vendt tilbage.

    EXISTS kan evaluere nuller , så de rækker kan returneres .
    ligheder

    FINDES , og både støtte korrelerede og ukorrelerede underforespørgsler og både kan producere store lignende resultater. Når korreleret , FINDES og IN matche en hovedforespørgslen felt til en underforespørgsel felt ( tidl. : main.id = subquery.id ) . Underforespørgslen evaluerer rækkevis for hver fundet match . I dette tilfælde vil IN og EXISTS returnerer de samme rækker baseret på tilsvarende id kampe. Når ukorrelerede , FINDES og IN proces deres underforespørgsler først , derefter matche resultaterne til hovedforespørgslen .
    Ydeevne eksisterer og IN

    ydeevne bestemmes af databasen optimizer og udførelsen planen den beskæftiger for henrettet kode. For FINDES og IN , kan optimizer vælge forskellige stier. I Oracle, er dette ved NOT EXISTS undgå en anti- slutte , og typisk bevise hurtigere end NOT IN. I sidste ende , er nogle trial and error kræves for at benchmarke den hurtigste vej afhængigt af databasen , og det er versionen bliver brugt. Vær sikker på at bruge operatør, der sikrer korrekte resultater først, derefter , hvis alt er det samme , kan du prøve at substituere eksisterer og IN til virkelig se, der er hurtigere.

    Forrige :

    næste :
      Relaterede artikler
    ·Hvad er Interleave Kodning 
    ·Sådan Load Dll filer 
    ·VB.Net & Hvordan Expose Business Objects Som Web Servic…
    ·Sådan bruges Regular Expressions til at blokere spam 
    ·Rustfrit stål 351M Ford Specs 
    ·Sådan slettes det første element i C String 
    ·Sådan kontrolleres , om en værdi Findes i SQL 
    ·Sådan Gør kolonner ved hjælp af DIV Tags 
    ·Sådan Opdatere en erklæring i Informix 
    ·Hvad er forskellen mellem XSL & XSD 
      Anbefalede Artikler
    ·Sådan ændres Hvor NetBeans Gemmer Projekt 
    ·Liste over faner i Workbook 
    ·Sådan Konverter til heltal i VB6 
    ·Hvad er filtypen JNLP 
    ·Tutorial om OOP og PHP 5 Klasser 
    ·Formål Undervisning Flow Chart System Analysis 
    ·Sådan oprettes en forespørgsel i Access VBA 
    ·Sådan Reverse String i C Brug Arrays Uden Kørselshast…
    ·Sådan bruges Shell Funktion i VBA 
    ·Sådan Beregn Simpson Rule Brug Python 
    Copyright © Computer Viden http://www.computerdk.com