Introduksjon til WHERE-ledd
Som vi alle vet at SQL (Structured Query Language) er et av de mest brukte språkene for relasjonsdatabaser (database der poster lagres i form av rader og kolonner). I SQL blir spørsmål avfyrt for å treffe databasen for å utføre ønskede operasjoner, det være seg DML (Data Manipulation Language), DDL (Data Definition Language) eller DCL (Data Control Language). SQL bruker noen klausuler som WHERE, GROUP BY, HAVING, ORDER BY som utfører spesifikke operasjoner. WHERE-leddet brukes til å anvende forhold og filtrere ut resultater mens du henter inn eller manipulerer data fra databasen. Den brukes med SELECT, UPDATE og DELETE-setningen, og WHERE-leddet er valgfritt å brukes med dem.
Generelt vilkår, WHERE-ledd,
- Brukes til å filtrere radene i henhold til de gitte kriteriene.
- Begrenser antall returnerte rader.
- Etterfulgt av en logisk tilstand som returnerer enten sant eller usant.
- Fungerer bare hvis den nevnte tilstanden går igjen.
- Det kan brukes med SELECT, UPDATE eller DELETE utsagn.
1. Syntaks med VELG
SELECT column1, column2, column3… from table_name WHERE condition;
Her vil SELECT hente alle dataene til kolonne1, kolonne2, kolonne3 fra tabellen (navngitt som tabellnavn) og WHERE-leddet gjelder betingelsene for dataene som er hentet av SELECT-setningen og filtrere det i henhold til tilstanden som er nevnt i utsagnet.
2. Syntaks med UPDATE
UPDATE table_name SET column_name = value WHERE condition;
Her vil Update oppdatere verdien for column_name med oppgitt hvor tilstand.
Sammenligning og logiske operatører kan også brukes med WHERE-tilstand som og, eller, ikke, LIKE, <, =, etc.
3. Syntaks med SLETT
DELETE from table_name WHERE condition;
I syntaks over:
table_name | Navn på tabellen som operasjoner må utføres på. |
betingelse | Angir filtertilstanden som postene må filtreres på |
column_list | Navn på kolonnene i tabellen |
eksempler
Tenk på en elevtabell som har forskjellige kolonner og verdier nevnt nedenfor:
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percentage |
1 | Rahul | Agra | 9557806625 | 85 |
2 | Ankit | Delhi | 8855664471 | 75 |
3 | Shailendra | Noida | 7213457896 | 92 |
Scenario nr. 1
Hent student-ID, studentnavn, adresse og prosentandel av alle studentene som scoret mer enn 80 prosent.
Spørsmål
SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;
Resultat:
Antall poster: 2
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 85 |
3 | Shailendra | Noida | 92 |
Scenario nr. 2
Oppdater prosentandelen av Rahul med 2 prosent.
Spørsmål
UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';
Resultat:
Berørte rader: 1
Hvis vi treffer spørringen for å se de oppdaterte feltene:
Spørsmål
SELECT * from students WHERE Stu_name ='Rahul';
Resultat:
Antall poster: 1
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 87 |
Scenario nr. 3
Student Ankit har forlatt skolen, så slett hele posten til ham fra bordet.
Spørsmål
DELETE from students WHERE Stu_name = 'Ankit';
Resultat:
Berørte rader: 1
Slik viser du den oppdaterte bordstudenten:
Spørsmål
SELECT * from students;
Resultat:
Berørte rader: 2
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3 | Shailendra | Noida | 7213457896 | 92 |
HVOR klausul Drift
WHERE-klausulen inneholder betingelsene som databaseverdiene blir filtrert på. Ulike operatører kan brukes med WHERE-leddet. Noen av dem er gitt nedenfor i tabellen med et eksempel:
S.No. | Operatør | Beskrivelse | Eksempel |
1. | OG | Returnerer sann hvis begge forholdene stemmer | VELG * fra studenter HVOR Stu_name = 'Rahul' og Stu_percentage = 85; |
2. | ELLER | Returnerer sann hvis en av
tilstand kamper | VELG * fra studenter HVOR Stu_name = 'Rahul' eller Stu_name = 'Shalendra'; |
3. | I | Verdien samsvarer med en av de angitte flere verdiene | VELG * fra studenter HVOR Stu_city IN ('AGRA', 'NOIDA'); |
4. | IKKE I | Verdien samsvarer ikke med noen av de angitte flere verdiene | VELG * fra studenter HVOR Stu_city NOT IN ('AGRA', 'NOIDA'); |
5. | = | Lik | VELG * fra studenter HVOR
Stu_name = 'Rahul'; |
6. | > | Større enn | VELG * fra studenter HVOR Stu_percentage> 80; |
7. | < | Mindre enn | VELG * fra studenter HVOR Stu_percentage <78; |
8. | > = | Større enn eller lik | VELG * fra studenter HVOR Stu_percenetage> = 70; |
9. | <= | Mindre enn eller lik | VELG * fra studenter HVOR Stu_percenetage <= 70; |
10. | Ikke lik | VELG * fra studenter HVOR Stu_percentage 75; | |
11. | MELLOM | Verdien ligger mellom et bestemt område | VELG * fra studenter HVOR
Stu_percentage MELLOM 70 OG 85; |
12. | SOM | Verdier samsvarer med et bestemt mønster. Brukes til å utføre jokersøk | VELG * fra studenter HVOR Stu_city LIKE 'AG%'; |
Merk: Det er en ting som må huskes når du arbeider med WHERE-leddet, er at mens du spesifiserer tilstanden, blir ikke numeriske verdier sitert i enkelt sitater (''), mens tekstverdier (varchar) trenger å bli sitert i enkelt sitater ('').
Hvordan fungerer WHERE-leddet i SQL?
Selv om eksemplene ovenfor viser tydelig hvordan WHERE-leddet brukes til å filtrere dataene i henhold til betingelsen som er spesifisert av brukeren og tillater raskere utførelse av SQL-kode ettersom antall returnerte poster er begrenset av betingelsen. SQL Query optimizer fungerer først på spørringen ved å bruke FROM (tabell som operasjonen må utføres på) for å enten hente, slette eller oppdatere og deretter bruke WHERE-ledd på resultatene.
HVOR-ledd kan bare brukes når vi trenger å filtrere resultatene i en enkelt tabell eller sammenføyning av tabeller, da den fungerer på rader-data, men når det gjelder aggregatfunksjonene, kan HVOR ikke brukes til å anvende betingelser på spørringen.
La oss vurdere scenariet der WHERE-leddet ikke kan brukes:
Scenario: I et "film" -bord kan du hente alle detaljene om filmer som tjener mer enn 10 crores i bestemte år som (2000, 2010, 2012..etc)
Spørsmål:
SELECT * from movies GROUP BY Year_released HAVING earnings > 10;
Eksemplet ovenfor bruker HAVING-ledd i stedet for WHERE, fordi WHERE-leddet ikke kan brukes i de samlede funksjonene, mens HAVING kan, og dette er også en av de største forskjellene mellom WHERE og HAVING-leddet
Konklusjon - SQL WHERE klausul
Ovennevnte forklaring viser tydelig bruken av WHERE-leddet og dens implementering for forskjellige scenarier i SQL-spørringer. Før du skriver spørsmål, må man huske på bruken av hver klausul og scenariet der den bestemte klausulen eller nøkkelordet skal brukes.
Anbefalte artikler
Dette er en guide til SQL WHERE-ledd. Her diskuterer vi bruken av WHERE-leddet og dens implementering for forskjellige scenarier. Du kan også gå gjennom andre foreslåtte artikler -
- Typer sammenføyninger i SQL
- Jokertegn i MySQL
- SQL Sett inn spørring
- Fremmed nøkkel i SQL
- Topp 6 typer sammenføyninger i MySQL med eksempler