- SQL-klausul hjælper os med at hente et sæt eller bundter af poster fra tabellen.
- SQL-sætning hjælper os med at angive en betingelse på kolonnerne eller posterne i en tabel.
Forskellige klausuler tilgængelige i Structured Query Language er som følger:
- HVOR KLAUSUL
- GRUPPE EFTER KLAUSUL
- HAR KLAUSUL
- BESTIL EFTER KLAUSUL
Lad os se hver sætning en efter en med et eksempel. Vi vil bruge MySQL-databasen til at skrive forespørgslerne i eksempler.
1. HVOR KLAUSUL
En WHERE-sætning i SQL bruges sammen med SELECT-forespørgslen, som er en af sprogkommandoerne til datamanipulation. HVOR klausuler kan bruges til at begrænse antallet af rækker, der skal vises i resultatsættet, hjælper det generelt med at filtrere posterne. Den returnerer kun de forespørgsler, der opfylder de specifikke betingelser i WHERE-klausulen. WHERE-sætning bruges i SELECT, UPDATE, DELETE-sætning osv.
WHERE-klausul med SELECT Query
Stjernesymbol bruges sammen med et WHERE-udtryk i en SELECT-forespørgsel for at hente alle kolonneværdierne for hver post fra en tabel.
Syntaks for where-sætning med en valgforespørgsel for at hente alle kolonneværdierne for hver post fra en tabel:
SELECT * FROM TABLENAME WHERE CONDITION;
Hvis vi ifølge kravet kun ønsker at hente selektive kolonner, vil vi bruge nedenstående syntaks:
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION;
Overvej medarbejdertabellen med følgende data:
E_ID | Navn | Løn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50.000 | Mumbai | Projektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75.000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40.000 | Jaipur | Manager | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90.000 | Mumbai | Software testere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45.000 | Bangalore | Projektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60.000 | Bangalore | Manager | 2019-07-17 | 26 |
7 | Baviskars stemme | 55.000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45.000 | Pune | Software ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50.000 | Pune | Software testere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60.000 | Mumbai | Projektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareudvikler | 2016-09-10 | 25 |
13 | Kiran Maheshwari | 50.000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40.000 | Delhi | Projektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38.000 | Pune | Softwareudvikler | 2019-03-05 | tyve |
Eksempel 1:
Skriv en forespørgsel for at hente alle disse poster for en medarbejder, hvor medarbejderlønnen er større end 50.000.
Forespørgsel:
mysql> SELECT * FROM employees WHERE Salary > 50000;
Ovenstående forespørgsel vil vise alle de poster for en medarbejder, hvor en medarbejders løn er større end 50.000. Løn under 50.000 vil ikke blive vist i henhold til betingelserne.
Du får følgende output:
Ifølge det forventede output vises kun de poster, hvor en medarbejders løn er større end 50.000. Der er seks poster i medarbejderens tabel, som opfylder den givne betingelse.
hvordan man ved, om nogen har blokeret dig på Android
Eksempel 2:
Skriv en forespørgsel for at opdatere medarbejderens post og indstil det opdaterede navn som 'Harshada Sharma', hvor medarbejderens bynavn er Jaipur.
Forespørgsel:
mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur';
Ovenstående forespørgsel vil opdatere medarbejderens navn til 'Harshada Sharma', hvor medarbejderens by er Jaipur.
For at kontrollere, om poster er opdateret eller ej, kører vi en udvalgt forespørgsel.
mysql> SELECT * FROM employees;
Der er kun én post i medarbejderens tabel, hvor medarbejderens by er 'Jaipur'. Postens id er 3, hvilket opfylder den givne betingelse. Derfor er medarbejderens navn med medarbejder-id 3 i henhold til den givne betingelse nu ændret til 'Harshada Sharma'.
Eksempel 3:
Skriv en forespørgsel for at slette en medarbejders post, hvor medarbejderens tiltrædelsesdato er '2013-12-12'.
Forespørgsel:
mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12';
Ovenstående forespørgsel vil slette medarbejderoplysningerne for den medarbejder, hvis tiltrædelsesdato er '2013-12-12'.
For at verificere resultaterne af ovenstående forespørgsel, udfører vi den valgte forespørgsel.
mysql> SELECT *FROM employees;
Der er kun én post i medarbejderens tabel, hvor medarbejderens tiltrædelsesdato er '2013-12-12'. Postens id er 13, hvilket opfylder den givne betingelse. Derfor er medarbejderen med medarbejder-id 13 i henhold til den givne betingelse nu slettet fra medarbejderens tabel.
2. GRUPPER EFTER KLAUSUL
Group By-klausulen bruges til at arrangere lignende typer poster i grupperne i Structured Query Language. Group by-klausulen i Structured Query Language bruges sammen med Select Statement. Gruppe for klausul placeres efter where-sætningen i SQL-sætningen. Group By-klausulen bruges specielt sammen med aggregatfunktionen, dvs. max (), min (), avg (), sum (), count () for at gruppere resultatet baseret på en eller mere end én kolonne.
Syntaksen for Group By-sætning:
SELECT * FROM TABLENAME GROUP BY COLUMNNAME;
Ovenstående syntaks vil vælge alle data eller poster fra tabellen, men den vil arrangere alle disse data eller poster i grupperne baseret på kolonnenavnet givet i forespørgslen.
Syntaksen for Group By-klausul med aggregerede funktioner:
SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME;
Lad os forstå Group By-klausulen ved hjælp af eksempler.
Overvej medarbejdertabellen med følgende data:
E_ID | Navn | Løn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50.000 | Mumbai | Projektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75.000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40.000 | Jaipur | Manager | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90.000 | Mumbai | Software testere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45.000 | Bangalore | Projektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60.000 | Bangalore | Manager | 2019-07-17 | 26 |
7 | Baviskars stemme | 55.000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45.000 | Pune | Software ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50.000 | Pune | Software testere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60.000 | Mumbai | Projektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareudvikler | 2016-09-10 | 25 |
13 | Kiran Maheshwari | 50.000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40.000 | Delhi | Projektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38.000 | Pune | Softwareudvikler | 2019-03-05 | tyve |
Eksempel 1:
Skriv en forespørgsel for at vise alle poster i medarbejdertabellen, men grupper resultaterne baseret på alderskolonnen.
Forespørgsel:
mysql> SELECT * FROM employees GROUP BY Age;
Ovenstående forespørgsel vil vise alle poster i medarbejdertabellen, men grupperet efter alderskolonnen.
Du får følgende output:
Eksempel 2:
Skriv en forespørgsel for at vise alle poster i medarbejdertabellen grupperet efter betegnelse og løn.
java lambda eksempel
Forespørgsel:
mysql> SELECT * FROM employees GROUP BY Salary, Designation;
Ovenstående forespørgsel vil vise alle poster i medarbejdertabellen, men grupperet efter løn- og betegnelseskolonnen.
Du får følgende output:
Eksempler på Group By-sætning, der bruger aggregerede funktioner
Eksempel 1:
Skriv en forespørgsel for at liste antallet af medarbejdere, der arbejder på en bestemt betegnelse, og grupper resultaterne efter udpegelse af medarbejderen.
Forespørgsel:
mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation;
Ovenstående forespørgsel vil vise betegnelsen med det respektive antal medarbejdere, der arbejder på denne betegnelse. Alle disse resultater vil blive grupperet efter betegnelseskolonnen.
Du får følgende output:
I henhold til det forventede output vises betegnelsen med det respektive medarbejderantal.
Eksempel 2:
Skriv en forespørgsel for at vise summen af en medarbejders løn i henhold til byen grupperet efter en medarbejders alder.
Forespørgsel:
mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City;
Ovenstående forespørgsel vil først beregne summen af lønninger, der arbejder i hver by, og derefter vil den vise lønsummen med den respektive løn, men grupperet efter alderskolonnen.
Du får følgende output:
I henhold til det forventede output vises summen af medarbejderløn i henhold til den by, som medarbejderen tilhører. Hvis to ansatte tilhører samme by, vil de være i én gruppe.
3. HAR KLAUSUL:
Når vi skal placere betingelser på tabellens kolonne, bruger vi WHERE-sætningen i SQL. Men hvis vi vil bruge en hvilken som helst betingelse på en kolonne i Group By-klausulen på det tidspunkt, vil vi bruge HAVING-klausulen med Group By-klausulen til kolonnebetingelser.
Syntaks:
TABLENAME GROUP BY COLUMNNAME HAVING CONDITION;
Overvej medarbejdertabellen med følgende data:
E_ID | Navn | Løn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50.000 | Mumbai | Projektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75.000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40.000 | Jaipur | Manager | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90.000 | Mumbai | Software testere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45.000 | Bangalore | Projektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60.000 | Bangalore | Manager | 2019-07-17 | 26 |
7 | Baviskars stemme | 55.000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45.000 | Pune | Software ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50.000 | Pune | Software testere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60.000 | Mumbai | Projektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareudvikler | 2016-09-10 | 25 |
13 | Kiran Maheshwari | 50.000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40.000 | Delhi | Projektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38.000 | Pune | Softwareudvikler | 2019-03-05 | tyve |
Eksempel 1:
Skriv en forespørgsel for at vise navnet på medarbejdere, løn og by, hvor medarbejderens maksimale løn er større end 40.000, og grupper resultaterne efter betegnelse.
Forespørgsel:
mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000;
Du får følgende output:
Ovenstående output viser, at medarbejdernavn, løn og by for en medarbejder, hvor medarbejderlønnen er større end 40.000 grupperet efter betegnelse. (Medarbejdere med lignende betegnelse placeres i én gruppe, og medarbejdere med anden betegnelse placeres separat).
Eksempel 2:
Skriv en forespørgsel for at vise medarbejdernes navn og betegnelse, hvor summen af en medarbejders løn er større end 45.000, og grupper resultaterne efter by.
Forespørgsel:
mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000;
Du får følgende output:
df.loc
Ovenstående output viser medarbejdernavn, betegnelse og løn for en medarbejder. Summen af lønnen er større end 45000 grupperet efter by. (Medarbejdere med lignende byer placeres i én gruppe, og ansatte med en anden by er ikke ens placeres separat).
4. BESTILLING EFTER KLAUSUL
Når vi vil sortere noget i SQL, bruger vi ORDER BY-sætningen. ORDER BY-sætningen i SQL vil hjælpe os med at sortere data baseret på den specifikke kolonne i en tabel. Det betyder, at alle data, der er gemt i den specifikke kolonne, som vi udfører ORDER BY-klausulen på, vil blive sorteret. De tilsvarende kolonneværdier vil blive vist i den rækkefølge, hvori vi har opnået værdierne i det tidligere trin.
Som vi alle ved, betyder sortering enten i STIGENDE RÆKKELEGE eller AFTAGENDE RÆKKE. På samme måde sorterer ORDER BY CLAUSE dataene i stigende eller faldende rækkefølge i henhold til vores krav. Dataene vil blive sorteret i stigende rækkefølge, hver gang ASC nøgleord bruges sammen med ORDER by klausul, og DESC nøgleord vil sortere posterne i faldende rækkefølge.
Som standard vil sortering i SQL blive udført ved hjælp af ORDER BY klausulen i ASCENDING rækkefølge, hvis vi ikke nævnte sorteringsrækkefølgen.
Før vi går hen imod eksemplet med ORDER BY-klausulen for at sortere posterne, vil vi først se på syntaks, så det bliver nemt for os at gennemgå eksemplet.
Syntaks for ORDER BY-sætning uden asc og desc nøgleord:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME;
Syntaks for ORDER BY-sætning til sortering i stigende rækkefølge:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC;
Syntaks for ORDER BY-sætning til sortering i faldende rækkefølge:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC;
Overvej, at vi har en medarbejdertabel med følgende data:
E_ID | Navn | Løn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50.000 | Mumbai | Projektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75.000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40.000 | Jaipur | Manager | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90.000 | Mumbai | Software testere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45.000 | Bangalore | Projektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60.000 | Bangalore | Manager | 2019-07-17 | 26 |
7 | Baviskars stemme | 55.000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45.000 | Pune | Software ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50.000 | Pune | Software testere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60.000 | Mumbai | Projektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareudvikler | 2016-09-10 | 25 |
13 | Kiran Maheshwari | 50.000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40.000 | Delhi | Projektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38.000 | Pune | Softwareudvikler | 2019-03-05 | tyve |
Eksempel 1:
Skriv en forespørgsel for at sortere posterne i stigende rækkefølge efter medarbejderbetegnelsen fra medarbejdertabellen.
Forespørgsel:
mysql> SELECT * FROM employees ORDER BY Designation;
Her i en SELECT-forespørgsel anvendes en ORDER BY-klausul på kolonnen 'Designation' for at sortere posterne, men vi brugte ikke ASC-nøgleordet efter ORDER BY-klausulen til at sortere i stigende rækkefølge. Så som standard vil data blive sorteret i stigende rækkefølge, hvis vi ikke angiver asc nøgleord.
Du får følgende output:
I henhold til det forventede output vises posterne i stigende rækkefølge efter medarbejderens betegnelse.
Eksempel 2:
Skriv en forespørgsel for at vise medarbejdernavn og løn i stigende rækkefølge af medarbejderens løn fra medarbejdertabellen.
Forespørgsel:
mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC;
Her i en SELECT-forespørgsel anvendes en ORDER BY-klausul til kolonnen 'Løn' for at sortere posterne. Vi har brugt søgeordet ASC til at sortere medarbejderens løn i stigende rækkefølge.
Du får følgende output:
betinget operator i java
Alle poster vises i stigende rækkefølge af medarbejderens løn.
Eksempel 3:
Skriv en forespørgsel for at sortere dataene i faldende rækkefølge efter medarbejdernavnet gemt i medarbejdertabellen.
Forespørgsel:
mysql> SELECT * FROM employees ORDER BY Name DESC;
Her har vi brugt ORDER BY-sætningen med SELECT-forespørgslen anvendt på kolonnen Navn til at sortere dataene. Vi har brugt nøgleordet DESC efter ORDER BY-klausulen til at sortere data i faldende rækkefølge.
Du får følgende output:
Alle posterne vises i faldende rækkefølge efter medarbejdernavnet.