Databaser er en betydelig byggestein i moderne applikasjoner. Imidlertid lagrer databaser en enorm mengde data. Derfor trenger vi måter å filtrere ut dataene og bare hente de nødvendige postene.
En av SQLs mest utbredte datafiltreringsmetoder er å bruke WHERE-klausulen. WHERE-leddet i SQL lar oss filtrere postene basert på en gitt betingelse. Denne klausulen kan spesifisere en eller flere betingelser som lar oss filtrere postene som returneres av en SELECT-setning.
Denne opplæringen utforsker hvordan du kan jobbe med WHERE-leddet og spesifisere de flere betingelsene i en enkelt klausul som tillater mer kontrollert og granulær datafiltrering.
Grunnleggende om SQL WHERE-klausul
La oss starte med det grunnleggende og lære det grunnleggende om å jobbe med WHERE-klausulen i SQL.
Anta at vi har en tabell som inneholder landinformasjonen, og vi henter bare landene med en befolkning (per kvadratkilometer) som er større enn 100 og et område som er større enn 2000000.
Vi kan kjøre en spørring som følger:
PLUKKE UT * FRA sample_db.country_informationHVOR område > 2 000 000 OG befolkning_per_km_sq > 100 ;
I forrige eksempel bruker vi WHERE-leddet og AND-operatoren for å spesifisere to forhold. Bruk av AND-operatoren forteller SQL at begge betingelsene MÅ være oppfylt for at posten skal inkluderes i resultatsettet.
Dette skal bare returnere landene som samsvarer med de angitte kriteriene som følger:
La oss se på de andre operatørene for å spesifisere de flere betingelsene i en WHERE-klausul.
SQL ELLER operatør
OR-operatoren lar oss spesifisere de flere betingelsene i en WHERE-klausul. Likevel, i motsetning til en AND-operatør som krever at alle betingelsene er oppfylt, krever OR-operatøren at minst én av betingelsene er oppfylt.
For for eksempel å velge landene som har et område som er større enn 2000000 eller en befolkning (per kvadratkilometer) som er større enn 100, kan vi kjøre følgende spørring:
PLUKKE UT * FRA sample_db.country_informationHVOR område > 2 000 000 ELLER befolkning_per_km_sq > 100 ;
I dette tilfellet skal spørringen returnere resultatene som følger:
SQL IN-operatør
Vi kan også bruke IN-operatoren til å spesifisere flere verdier for en kolonne. For for eksempel å velge landene hvis navn inkluderer 'USA'- og 'Russland'-strengene, kan vi kjøre spørringen som følger:
PLUKKE UT * FRA sample_db.country_informationHVOR landet IN ( 'Forente stater' , 'Russland' ) ;
Resultat:
SQL NOT Operator
NOT-operatoren lar oss negere en gitt betingelse.
Velg for eksempel landene som ikke har det spesifiserte området og populært per kvadratkilometer:
PLUKKE UT * FRA sample_db.country_informationHVOR IKKE område > 2 000 000 OG befolkning_per_km_sq > 100 ;
Resultat:
SQL flere operatører
Vi kan også kombinere de flere operatørene for å spesifisere mer komplekse forhold.
PLUKKE UT * FRA sample_db.country_informationHVOR ( country_information.area > 2 000 000 OG befolkning_per_km_sq > 100 ) ELLER land = 'Kina' ;
Produksjon:
I dette eksemplet bruker vi parentesene til å gruppere de to første betingelsene slik at de blir evaluert som en enkelt betingelse før de sammenlignes med den tredje betingelsen.
Konklusjon
Vi lærte hvordan du bruker WHERE-leddet til å spesifisere de flere betingelsene i SQL. I tillegg dekket vi AND, OR, IN og NOT-operatørene og oppdaget hvordan vi kunne kombinere dem for å skape mer komplekse forhold.