Databaser er en væsentlig byggesten i moderne applikationer. Databaser gemmer dog en enorm mængde data. Derfor har vi brug for måder at filtrere dataene fra og kun hente de nødvendige poster.
En af SQLs mest udbredte datafiltreringsmetoder er at bruge WHERE-sætningen. WHERE-sætningen i SQL giver os mulighed for at filtrere posterne baseret på en given betingelse. Denne klausul kan specificere en eller flere betingelser, som tillader os at filtrere de poster, der returneres af en SELECT-sætning.
Denne vejledning undersøger, hvordan man arbejder med WHERE-sætningen og specificerer de flere betingelser i en enkelt klausul, som giver mulighed for mere kontrolleret og granulær datafiltrering.
Grundlæggende om SQL WHERE-klausul
Lad os starte med det grundlæggende og lære det grundlæggende i arbejdet med WHERE-sætningen i SQL.
Antag, at vi har en tabel, som indeholder landeoplysningerne, og vi henter kun de lande med en befolkning (pr. kvadratkilometer), der er større end 100 og et areal, der er større end 2000000.
Vi kan køre en forespørgsel som følger:
VÆLG * FRA sample_db.country_informationHVOR område > 2.000.000 OG befolkning_per_km_sq > 100 ;
I det foregående eksempel bruger vi WHERE-sætningen og AND-operatoren til at specificere to betingelser. Brug af AND-operatoren fortæller SQL, at begge betingelser SKAL være opfyldt, for at posten kan inkluderes i resultatsættet.
Dette bør kun returnere de lande, der matcher de angivne kriterier som følger:
Lad os se på de andre operatører for at specificere de flere betingelser i en WHERE-klausul.
SQL ELLER operatør
OR-operatoren giver os mulighed for at specificere de flere betingelser i en WHERE-sætning. Alligevel, i modsætning til en AND-operatør, der kræver, at alle betingelserne er opfyldt, kræver OR-operatøren, at mindst én af betingelserne er opfyldt.
For at vælge de lande, der f.eks. har et areal, der er større end 2000000 eller en befolkning (pr. kvadratkilometer), der er større end 100, kan vi køre følgende forespørgsel:
VÆLG * FRA sample_db.country_informationHVOR område > 2.000.000 ELLER population_per_km_sq > 100 ;
I dette tilfælde skal forespørgslen returnere resultaterne som følger:
SQL IN operatør
Vi kan også bruge IN-operatoren til at angive de flere værdier for en kolonne. For at vælge de lande, hvis navn inkluderer strengene 'USA' og 'Rusland', kan vi køre forespørgslen som følger:
VÆLG * FRA sample_db.country_informationHVOR land IN ( 'Forenede Stater' , 'Rusland' ) ;
Resultat:
SQL NOT Operator
NOT-operatoren tillader os at afvise en given betingelse.
Vælg f.eks. de lande, der ikke har det angivne areal og populære pr. kvadratkilometer:
VÆLG * FRA sample_db.country_informationHVOR IKKE område > 2.000.000 OG befolkning_per_km_sq > 100 ;
Resultat:
SQL Multiple Operators
Vi kan også kombinere de flere operatører for at specificere mere komplekse forhold.
VÆLG * FRA sample_db.country_informationHVOR ( country_information.area > 2.000.000 OG befolkning_per_km_sq > 100 ) ELLER land = 'Kina' ;
Produktion:
I dette eksempel bruger vi parenteserne til at gruppere de to første betingelser, så de vurderes som en enkelt betingelse, før de sammenlignes med den tredje betingelse.
Konklusion
Vi lærte, hvordan man bruger WHERE-sætningen til at specificere de flere betingelser i SQL. Derudover dækkede vi AND, OR, IN og NOT operatorerne og opdagede, hvordan man kombinerer dem for at skabe mere komplekse forhold.