- SQL-klausul hjelper oss med å hente et sett eller bunter med poster fra tabellen.
- SQL-klausul hjelper oss å spesifisere en betingelse i kolonnene eller postene i en tabell.
Ulike klausuler tilgjengelig i Structured Query Language er som følger:
- HVOR KLAUSUL
- GRUPPE ETTER KLAUSUL
- HA KLAUSUL
- BESTILL ETTER KLAUSUL
La oss se hver klausul en etter en med et eksempel. Vi vil bruke MySQL-database for å skrive spørringene i eksempler.
1. HVOR KLAUSUL
En WHERE-klausul i SQL brukes med SELECT-spørringen, som er en av språkkommandoene for datamanipulering. HVOR klausuler kan brukes til å begrense antall rader som skal vises i resultatsettet, hjelper det vanligvis med å filtrere postene. Den returnerer bare de spørringene som oppfyller de spesifikke betingelsene i WHERE-klausulen. WHERE-klausulen brukes i SELECT, UPDATE, DELETE-setningen osv.
WHERE-klausul med SELECT Query
Asterisk-symbol brukes med en WHERE-klausul i en SELECT-spørring for å hente alle kolonneverdiene for hver post fra en tabell.
Syntaks for where-ledd med en utvalgsspørring for å hente alle kolonneverdiene for hver post fra en tabell:
SELECT * FROM TABLENAME WHERE CONDITION;
Hvis vi i henhold til kravet kun ønsker å hente selektive kolonner, vil vi bruke syntaksen nedenfor:
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION;
Vurder ansatttabellen med følgende data:
E_ID | Navn | Lønn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50 000 | Mumbai | Prosjektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75 000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40 000 | Jaipur | sjef | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90 000 | Mumbai | Programvaretestere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45 000 | Bangalore | Prosjektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60 000 | Bangalore | sjef | 2019-07-17 | 26 |
7 | Baviskars stemme | 55 000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45 000 | Pune | Programvare ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50 000 | Pune | Programvaretestere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60 000 | Mumbai | Prosjektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Programvareutvikler | 2016-09-10 | 25 |
1. 3 | Kiran Maheshwari | 50 000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40 000 | Delhi | Prosjektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38 000 | Pune | Programvareutvikler | 2019-03-05 | tjue |
Eksempel 1:
Skriv en forespørsel for å hente alle postene til en ansatt der ansattes lønn er større enn 50 000.
Spørsmål:
mysql> SELECT * FROM employees WHERE Salary > 50000;
Spørsmålet ovenfor vil vise alle postene til en ansatt der en ansatts lønn er høyere enn 50 000. Lønn under 50 000 vil ikke bli vist i henhold til vilkårene.
Du vil få følgende utgang:
I henhold til forventet utgang, vises bare de postene der en ansatts lønn er større enn 50 000. Det er seks poster i den ansattes tabell som tilfredsstiller den gitte betingelsen.
skrive ut uttalelse i java
Eksempel 2:
Skriv en forespørsel for å oppdatere den ansattes post og angi det oppdaterte navnet som 'Harshada Sharma' der den ansattes bynavn er Jaipur.
Spørsmål:
mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur';
Spørsmålet ovenfor vil oppdatere den ansattes navn til 'Harshada Sharma', der den ansattes by er Jaipur.
For å verifisere om poster er oppdatert eller ikke, kjører vi en utvalgsspørring.
mysql> SELECT * FROM employees;
Det er bare én post i den ansattes tabell der den ansattes by er 'Jaipur'. ID-en til posten er 3, som tilfredsstiller den gitte betingelsen. Derfor, i henhold til den gitte betingelsen, er den ansattes navn med ansatt-ID 3 nå endret til 'Harshada Sharma'.
Eksempel 3:
Skriv en forespørsel for å slette en ansatts post der den ansattes tiltredelsesdato er '2013-12-12'.
Spørsmål:
mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12';
Spørsmålet ovenfor vil slette ansattinformasjonen til den ansatte hvis tiltredelsesdato er '2013-12-12'.
For å verifisere resultatene av spørringen ovenfor, vil vi utføre utvalgsspørringen.
mysql> SELECT *FROM employees;
Det er bare én post i den ansattes tabell der den ansattes tiltredelsesdato er '2013-12-12'. ID-en til posten er 13, som tilfredsstiller den gitte betingelsen. Derfor i henhold til den gitte betingelsen er den ansatte med ansatt-id 13 nå slettet fra den ansattes tabell.
2. GRUPPE ETTER KLAUSUL
Group By-klausulen brukes til å ordne lignende typer poster i gruppene i Structured Query Language. Group by-klausulen i Structured Query Language brukes med Select Statement. Gruppe for ledd er plassert etter where-leddet i SQL-setningen. Group By-klausulen brukes spesielt med aggregeringsfunksjonen, dvs. maks (), min (), avg (), sum (), count () for å gruppere resultatet basert på én eller flere kolonner.
Syntaksen til Group By-klausulen:
SELECT * FROM TABLENAME GROUP BY COLUMNNAME;
Syntaksen ovenfor vil velge alle dataene eller postene fra tabellen, men den vil ordne alle disse dataene eller postene i gruppene basert på kolonnenavnet gitt i spørringen.
Syntaksen til Group By-klausul med aggregerte funksjoner:
SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME;
La oss forstå Group By-klausulen ved hjelp av eksempler.
Tenk på ansattetabellen med følgende data:
E_ID | Navn | Lønn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50 000 | Mumbai | Prosjektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75 000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40 000 | Jaipur | sjef | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90 000 | Mumbai | Programvaretestere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45 000 | Bangalore | Prosjektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60 000 | Bangalore | sjef | 2019-07-17 | 26 |
7 | Baviskars stemme | 55 000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45 000 | Pune | Programvare ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50 000 | Pune | Programvaretestere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60 000 | Mumbai | Prosjektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Programvareutvikler | 2016-09-10 | 25 |
1. 3 | Kiran Maheshwari | 50 000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40 000 | Delhi | Prosjektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38 000 | Pune | Programvareutvikler | 2019-03-05 | tjue |
Eksempel 1:
Skriv en spørring for å vise alle postene til ansattetabellen, men grupper resultatene basert på alderskolonnen.
Spørsmål:
mysql> SELECT * FROM employees GROUP BY Age;
Spørringen ovenfor vil vise alle postene i tabellen med ansatte, men gruppert etter alderskolonnen.
Du vil få følgende utgang:
Eksempel 2:
Skriv en spørring for å vise alle postene til ansattetabellen gruppert etter betegnelse og lønn.
java lesing csv
Spørsmål:
mysql> SELECT * FROM employees GROUP BY Salary, Designation;
Spørringen ovenfor vil vise alle postene i tabellen med ansatte, men gruppert etter kolonnen lønn og betegnelse.
Du vil få følgende utgang:
Eksempler på Group By-klausul som bruker aggregerte funksjoner
Eksempel 1:
Skriv en spørring for å liste opp antall ansatte som jobber med en bestemt betegnelse og grupper resultatene etter ansatts navn.
Spørsmål:
mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation;
Spørringen ovenfor vil vise betegnelsen med det respektive antallet ansatte som jobber med denne betegnelsen. Alle disse resultatene vil bli gruppert etter betegnelseskolonnen.
Du vil få følgende utgang:
I henhold til forventet utgang, vises betegnelsen med det respektive antall ansatte.
Eksempel 2:
Skriv en forespørsel for å vise summen av en ansatts lønn i henhold til byen gruppert etter en ansatts alder.
Spørsmål:
mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City;
Spørringen ovenfor vil først beregne summen av lønn som jobber i hver by, og deretter vil den vise lønnssummen med den respektive lønnen, men gruppert etter alderskolonnen.
Du vil få følgende utgang:
I henhold til forventet utgang, vises summen av ansattes lønn i henhold til byen som den ansatte tilhører. Hvis to ansatte tilhører samme by, vil de være i en gruppe.
3. Å HA KLAUSUL:
Når vi trenger å plassere noen betingelser på tabellens kolonne, bruker vi WHERE-leddet i SQL. Men hvis vi vil bruke en hvilken som helst betingelse på en kolonne i Group By-klausulen på det tidspunktet, vil vi bruke HAVING-klausulen med Group By-klausulen for kolonnebetingelser.
Syntaks:
TABLENAME GROUP BY COLUMNNAME HAVING CONDITION;
Tenk på ansattetabellen med følgende data:
E_ID | Navn | Lønn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50 000 | Mumbai | Prosjektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75 000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40 000 | Jaipur | sjef | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90 000 | Mumbai | Programvaretestere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45 000 | Bangalore | Prosjektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60 000 | Bangalore | sjef | 2019-07-17 | 26 |
7 | Baviskars stemme | 55 000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45 000 | Pune | Programvare ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50 000 | Pune | Programvaretestere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60 000 | Mumbai | Prosjektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Programvareutvikler | 2016-09-10 | 25 |
1. 3 | Kiran Maheshwari | 50 000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40 000 | Delhi | Prosjektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38 000 | Pune | Programvareutvikler | 2019-03-05 | tjue |
Eksempel 1:
Skriv en forespørsel for å vise navnet på ansatte, lønn og by der den ansattes maksimale lønn er større enn 40 000 og grupper resultatene etter betegnelse.
Spørsmål:
mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000;
Du vil få følgende utgang:
Ovennevnte utdata viser at ansattnavn, lønn og by til en ansatt der ansattes lønn er større enn 40 000 gruppert etter betegnelse. (Ansatte med tilsvarende betegnelse plasseres i én gruppe, og de med annen betegnelse plasseres separat).
Eksempel 2:
Skriv en spørring for å vise navn på ansatte og betegnelse der summen av en ansatts lønn er større enn 45 000 og grupper resultatene etter by.
Spørsmål:
mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000;
Du vil få følgende utgang:
df.loc
Ovennevnte utdata viser ansattnavn, betegnelse og lønn til en ansatt. Summen av lønn er større enn 45 000 gruppert etter by. (Ansatte med lignende byer er plassert i en gruppe og de med en annen by er ikke like plasseres separat).
4. BESTILLING ETTER KLAUSUL
Når vi ønsker å sortere noe i SQL, bruker vi ORDER BY-klausulen. ORDER BY-klausulen i SQL vil hjelpe oss å sortere dataene basert på den spesifikke kolonnen i en tabell. Dette betyr at alle data som er lagret i den spesifikke kolonnen som vi utfører ORDER BY-klausulen på, vil bli sortert. De korresponderende kolonneverdiene vil vises i sekvensen der vi har oppnådd verdiene i det tidligere trinnet.
Som vi alle vet betyr sortering enten i STIGENDE ORDEN eller SYKENDE ORDEN. På samme måte sorterer ORDER BY CLAUSE dataene i stigende eller synkende rekkefølge i henhold til vårt krav. Dataene vil bli sortert i stigende rekkefølge hver gang ASC nøkkelord brukes med ORDER by-klausul, og DESC nøkkelord vil sortere postene i synkende rekkefølge.
Som standard vil sortering i SQL gjøres ved å bruke ORDER BY-leddet i ASCENDING-rekkefølge hvis vi ikke nevnte sorteringsrekkefølgen.
Før vi går mot eksemplet med ORDER BY-klausulen for å sortere postene, vil vi først se på syntaks slik at det blir enkelt for oss å gå gjennom eksemplet.
Syntaks for ORDER BY-ledd uten asc og desc nøkkelord:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME;
Syntaks for ORDER BY-ledd for å sortere i stigende rekkefølge:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC;
Syntaks for ORDER BY-leddet for å sortere i synkende rekkefølge:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC;
Tenk på at vi har en ansattetabell med følgende data:
E_ID | Navn | Lønn | By | Betegnelse | Dato_of_Joining | Alder |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50 000 | Mumbai | Prosjektleder | 2021-06-20 | 24 |
2 | Tejaswini Naik | 75 000 | Delhi | System ingeniør | 2019-12-24 | 23 |
3 | Anuja Sharma | 40 000 | Jaipur | sjef | 2021-08-15 | 26 |
4 | Anushka Tripathi | 90 000 | Mumbai | Programvaretestere | 2021-06-13 | 24 |
5 | Rucha Jagtap | 45 000 | Bangalore | Prosjektleder | 2020-08-09 | 23 |
6 | Rutuja Deshmukh | 60 000 | Bangalore | sjef | 2019-07-17 | 26 |
7 | Baviskars stemme | 55 000 | Jaipur | System ingeniør | 2021-10-10 | 24 |
8 | Der er Sheik | 45 000 | Pune | Programvare ingeniør | 2020-09-10 | 26 |
9 | Swati Kumari | 50 000 | Pune | Programvaretestere | 2021-01-01 | 25 |
10 | Mayuri Patel | 60 000 | Mumbai | Prosjektleder | 2020-10-02 | 24 |
elleve | Simran Khanna | 45500 | Kolhapur | HR | 2019-01-02 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Programvareutvikler | 2016-09-10 | 25 |
1. 3 | Kiran Maheshwari | 50 000 | Nashik | HR | 2013-12-12 | 23 |
14 | Tejal Jain | 40 000 | Delhi | Prosjektleder | 2017-11-10 | 25 |
femten | Mohini Shah | 38 000 | Pune | Programvareutvikler | 2019-03-05 | tjue |
Eksempel 1:
Skriv en spørring for å sortere postene i stigende rekkefølge av ansattbetegnelsen fra medarbeidertabellen.
Spørsmål:
mysql> SELECT * FROM employees ORDER BY Designation;
Her i en SELECT-spørring brukes en ORDER BY-klausul på kolonnen 'Designation' for å sortere postene, men vi brukte ikke ASC-nøkkelordet etter ORDER BY-leddet for å sortere i stigende rekkefølge. Så, som standard, vil data sorteres i stigende rekkefølge hvis vi ikke spesifiserer asc nøkkelord.
Du vil få følgende utgang:
I henhold til forventet utgang, vises postene i stigende rekkefølge etter den ansattes betegnelse.
Eksempel 2:
Skriv en spørring for å vise ansattes navn og lønn i stigende rekkefølge av ansattes lønn fra ansattes tabell.
Spørsmål:
mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC;
Her i en SELECT-spørring blir en ORDER BY-klausul brukt på 'Lønn'-kolonnen for å sortere postene. Vi har brukt søkeordet ASC for å sortere den ansattes lønn i stigende rekkefølge.
Du vil få følgende utgang:
betinget operatør i java
Alle postene vises i stigende rekkefølge av den ansattes lønn.
Eksempel 3:
Skriv en spørring for å sortere dataene i synkende rekkefølge etter medarbeidernavnet som er lagret i medarbeidertabellen.
Spørsmål:
mysql> SELECT * FROM employees ORDER BY Name DESC;
Her har vi brukt ORDER BY-leddet med SELECT-spørringen brukt på Navn-kolonnen for å sortere dataene. Vi har brukt nøkkelordet DESC etter ORDER BY-leddet for å sortere data i synkende rekkefølge.
Du vil få følgende utgang:
Alle postene vises i synkende rekkefølge etter den ansattes navn.