Introduktion til WHERE-klausul

Som vi alle ved, at SQL (Structured Query Language) er et af de mest almindeligt anvendte sprog til relationelle databaser (database, hvor poster gemmes i form af rækker og kolonner). I SQL-forespørgsler fyres for at ramme databasen for at udføre de ønskede operationer, det være sig DML (Data Manipulation Language), DDL (Data Definition Language) eller DCL (Data Control Language) operationer. SQL bruger nogle klausuler som WHERE, GROUP BY, HAVING, ORDER BY, der udfører specifikke operationer. WHERE-klausulen bruges til at anvende betingelser og filtrere resultater, mens du henter eller manipulerer data fra databasen. Det bruges med SELECT, UPDATE og DELETE-sætningen, og WHERE-klausulen er valgfri til brug sammen med dem.

Generelt vilkår, WHERE-klausul,

  • Bruges til at filtrere rækkerne i henhold til de givne kriterier.
  • Begrænser antallet af returnerede rækker.
  • Efterfulgt af en logisk betingelse, der returnerer enten sandt eller usant.
  • Fungerer kun, hvis den nævnte betingelse er korrekt.
  • Det kan bruges med SELECT, UPDATE eller DELETE udsagn.

1. Syntaks med SELECT

SELECT column1, column2, column3… from table_name WHERE condition;

Her vil SELECT hente alle data fra kolonne1, kolonne2, kolonne3 fra tabellen (navngivet som tabelnavn) og WHERE-klausulen anvender betingelserne til data hentet ved SELECT-sætning og filtrere dem i henhold til betingelsen nævnt i sætningen.

2. Syntaks med UPDATE

UPDATE table_name SET column_name = value WHERE condition;

Her vil Update opdatere værdien for column_name med angivet hvor betingelse.

Sammenlignings- og logiske operatører kan også bruges med WHERE-tilstand som og, eller, ikke, LIKE, <, =, etc.

3. Syntaks med SLET

DELETE from table_name WHERE condition;

I ovenstående syntaks:

tabel_navnNavn på tabellen, som operationerne skal udføres på.
tilstandSpecificerer filtertilstanden, som poster skal filtreres på
column_listNavn på tabellens kolonner

eksempler

Overvej en studerendes tabel med forskellige kolonner og værdier nævnt nedenfor:

Stu_idStu_nameStu_addressStu_phnoStu_percentage
1RahulAgra955780662585
2AnkitDelhi885566447175
3ShailendraNoida721345789692

Scenario nr. 1

Hent studerendes id, studerendes navn, adresse og procentdel af alle de studerende, der scorede mere end 80 procent.

Forespørgsel

SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;

Resultat:

Antal poster: 2

Stu_idStu_nameStu_addressStu_percentage
1RahulAgra85
3ShailendraNoida92

Scenario nr. 2

Opdater procentdelen af ​​Rahul med 2 procent.

Forespørgsel

UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';

Resultat:

Berørte rækker: 1

Hvis vi rammer forespørgslen for at se de opdaterede felter:

Forespørgsel

SELECT * from students WHERE Stu_name ='Rahul';

Resultat:

Antal poster: 1

Stu_idStu_nameStu_addressStu_percentage
1RahulAgra87

Scenario nr. 3

Student Ankit har forladt skolen, så slet hele posten om ham fra bordet.

Forespørgsel

DELETE from students WHERE Stu_name = 'Ankit';

Resultat:

Berørte rækker: 1

Sådan får du vist den opdaterede bordstuderende:

Forespørgsel

SELECT * from students;

Resultat:

Berørte rækker: 2

Stu_idStu_nameStu_addressStu_phnoStu_percenta ge
1RahulAgra955780662587
3ShailendraNoida721345789692

HVOR klausul Drift

WHERE-klausulen indeholder betingelserne, hvorpå databaseværdier filtreres. Forskellige operatører kan bruges med WHERE-klausulen. Nogle af dem er givet nedenfor i tabellen med et eksempel:

S.No.OperatørBeskrivelseEksempel
1.OGReturnerer sandt, hvis begge betingelser matcherVÆLG * fra studerende HVOR Stu_name = 'Rahul' og Stu_percentage = 85;
2.ELLERReturnerer sandt, hvis en af

tilstand matcher

VÆLG * fra studerende HVOR Stu_name = 'Rahul' eller Stu_name = 'Shalendra';
3.IVærdien matcher enhver af de angivne flere værdierVÆLG * fra studerende HVOR Stu_city IN ('AGRA', 'NOIDA');
4.IKKE IVærdien stemmer ikke overens med nogen af ​​de angivne flere værdierVÆLG * fra studerende, HVOR Stu_city NOT IN ('AGRA', 'NOIDA');
5.=LigeVÆLG * fra studerende HVOR

Stu_name = 'Rahul';

6.>Bedre endVÆLG * fra studerende HVOR Stu_percentage> 80;
7.<Mindre endVÆLG * fra studerende HVOR Stu_percentage <78;
8.> =Større end eller lig medVÆLG * fra studerende HVOR Stu_percenetage> = 70;
9.<=Mindre end eller lig medVÆLG * fra studerende HVOR Stu_percenetage <= 70;
10.Ikke lig medVÆLG * fra studerende HVOR Stu_percentage 75;
11.MELLEMVærdien ligger mellem et bestemt intervalVÆLG * fra studerende HVOR

Stu_percentage MELLEM 70 OG 85;

12.SYNES GODT OMVærdier matcher et bestemt mønster. Bruges til at udføre jokersøgningerVÆLG * fra studerende HVOR Stu_city LIKE 'AG%';

Bemærk: Der er en ting, der skal huskes, mens du arbejder med WHERE-klausulen, er, at mens du specificerer betingelsen, er de numeriske værdier ikke citeret i enkelte citater (''), mens tekstværdier (varchar) skal citeres i enkelt citater ('').

Hvordan fungerer WHERE-klausulen i SQL?

Selvom ovenstående eksempler tydeligt viser, hvordan WHERE-klausul bruges til at filtrere dataene i henhold til den betingelse, der er specificeret af brugeren og tillader hurtigere udførelse af SQL-kode, da antallet af returnerede poster er begrænset af betingelsen. SQL Query optimizer fungerer først på forespørgslen ved hjælp af FROM (tabel, hvor operationen skal udføres) til enten at hente, slette eller opdatere og derefter anvende WHERE-klausul på resultaterne.

HVOR-klausul kan kun bruges, når vi er nødt til at filtrere resultaterne i en enkelt tabel eller sammenføjning af tabeller, da den fungerer på rækkedata, men når der er tale om Aggregate-funktioner, kan WHERE ikke bruges til at anvende betingelser på forespørgslen.

Lad os overveje det scenarie, hvor WHERE-klausul ikke kan bruges:

Scenario: I en 'film'-tabel skal du hente alle detaljerne i film, der tjener mere end 10 crores i bestemte år, som (2000, 2010, 2012..etc)

Forespørgsel:

SELECT * from movies GROUP BY Year_released HAVING earnings > 10;

Ovenstående eksempel bruger HAVING-klausul i stedet for WHERE, fordi WHERE-klausul ikke kan bruges i de samlede funktioner, hvorimod HAVING kan, og dette er også en af ​​de største forskelle mellem WHERE og HAVING-klausulen

Konklusion - SQL WHERE-klausul

Ovenstående forklaring viser klart brugen af ​​WHERE-klausulen og dens implementering til forskellige scenarier i SQL-forespørgsler. Før man skriver en forespørgsel, skal man huske på brugen af ​​enhver klausul og scenariet, hvor den bestemte klausul eller nøgleord skal bruges.

Anbefalede artikler

Dette er en guide til SQL WHERE-klausul. Her diskuterer vi brugen af ​​WHERE-klausulen og dens implementering i forskellige scenarier. Du kan også gennemgå vores andre foreslåede artikler -

  1. Typer af sammenføjninger i SQL
  2. Jokertegn i MySQL
  3. SQL Indsæt forespørgsel
  4. Fremmed nøgle i SQL
  5. Top 6 typer sammenføjninger i MySQL med eksempler