logo

SQL-KLAUSLER

  • 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:

  1. HVOR KLAUSUL
  2. GRUPPE ETTER KLAUSUL
  3. HA KLAUSUL
  4. 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:

SQL-KLAUSLER

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'; 

SQL-KLAUSLER

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; 

SQL-KLAUSLER

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'; 

SQL-KLAUSLER

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; 

SQL-KLAUSLER

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:

SQL-KLAUSLER

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:

SQL-KLAUSLER

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:

SQL-KLAUSLER

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:

SQL-KLAUSLER

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:

SQL-KLAUSLER

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
SQL-KLAUSLER

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:

SQL-KLAUSLER

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
SQL-KLAUSLER

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:

SQL-KLAUSLER

Alle postene vises i synkende rekkefølge etter den ansattes navn.