logo

CLAUZE SQL

  • Clauza SQL ne ajută să extragem un set sau pachete de înregistrări din tabel.
  • Clauza SQL ne ajută să specificăm o condiție pe coloanele sau înregistrările unui tabel.

Diferitele clauze disponibile în limbajul de interogare structurat sunt următoarele:

  1. CLAUZA UNDE
  2. GRUPĂ CU CLAUZĂ
  3. AVÂND CLAUZĂ
  4. ORDIN PRIN CLAUZA

Să vedem fiecare clauză una câte una cu un exemplu. Vom folosi baza de date MySQL pentru a scrie interogările în exemple.

1. UNDE CLAUZA

O clauză WHERE din SQL este utilizată cu interogarea SELECT, care este una dintre comenzile limbajului de manipulare a datelor. Clauzele WHERE pot fi folosite pentru a limita numărul de rânduri care trebuie afișate în setul de rezultate, în general ajută la filtrarea înregistrărilor. Returnează doar acele interogări care îndeplinesc condițiile specifice ale clauzei WHERE. Clauza WHERE este folosită în instrucțiunile SELECT, UPDATE, DELETE etc.

lista de linkuri java

Clauza WHERE cu SELECT Query

Simbolul asterisc este folosit cu o clauză WHERE într-o interogare SELECT pentru a prelua toate valorile coloanei pentru fiecare înregistrare dintr-un tabel.

Sintaxa clauzei where cu o interogare select pentru a prelua toate valorile coloanei pentru fiecare înregistrare dintr-un tabel:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Dacă, conform cerințelor, dorim doar să extragem coloane selective, atunci vom folosi sintaxa de mai jos:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Luați în considerare tabelul angajaților cu următoarele date:

E_ID Nume Salariu Oraș Desemnare Data_aderării Vârstă
1 Sakshi Kumari 50000 Mumbai Manager de proiect 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Inginer de sistem 24-12-2019 23
3 Anuja Sharma 40000 Jaipur Administrator 15-08-2021 26
4 Anushka Tripathi 90000 Mumbai Testere de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Manager de proiect 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Administrator 17-07-2019 26
7 vocea lui Baviskar 55000 Jaipur Inginer de sistem 2021-10-10 24
8 Acolo este Sheik 45000 Pune Inginer de software 2020-09-10 26
9 Swati Kumari 50000 Pune Testere de software 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Manager de proiect 2020-10-02 24
unsprezece Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Dezvoltator de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Manager de proiect 2017-11-10 25
cincisprezece Mohini Shah 38000 Pune Dezvoltator de software 2019-03-05 douăzeci

Exemplul 1:

Scrieți o interogare pentru a prelua toate acele înregistrări ale unui angajat în care salariul angajatului este mai mare de 50000.

Interogare:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

Interogarea de mai sus va afișa toate acele înregistrări ale unui angajat în care salariul unui angajat este mai mare de 50000. Salariul sub 50000 nu va fi afișat conform condițiilor.

Veți obține următoarea ieșire:

CLAUZE SQL

Conform rezultatelor așteptate, sunt afișate doar acele înregistrări în care salariul unui angajat este mai mare de 50000. Există șase înregistrări în tabelul angajatului care îndeplinesc condiția dată.

Exemplul 2:

Scrieți o interogare pentru a actualiza fișa angajatului și setați numele actualizat ca „Harshada Sharma”, unde numele orașului angajatului este Jaipur.

Interogare:

 mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur'; 

CLAUZE SQL

Interogarea de mai sus va actualiza numele angajatului la „Harshada Sharma”, unde orașul angajatului este Jaipur.

Pentru a verifica dacă înregistrările sunt actualizate sau nu, vom rula o interogare selectată.

 mysql> SELECT * FROM employees; 

CLAUZE SQL

Există o singură înregistrare în tabelul angajatului în care orașul angajatului este „Jaipur”. Id-ul înregistrării este 3, ceea ce satisface condiția dată. Prin urmare, în conformitate cu condiția dată, numele angajatului cu ID-ul de angajat 3 este acum schimbat în „Harshada Sharma”.

Exemplul 3:

Scrieți o interogare pentru a șterge înregistrarea unui angajat în care data de aderare a angajatului este „2013-12-12”.

Interogare:

 mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12'; 

CLAUZE SQL

Interogarea de mai sus va șterge detaliile angajatului a cărui dată de înscriere este „2013-12-12”.

Pentru a verifica rezultatele interogării de mai sus, vom executa interogarea select.

 mysql> SELECT *FROM employees; 

CLAUZE SQL

Există o singură înregistrare în tabelul angajatului în care data de aderare a angajatului este „2013-12-12”. Id-ul înregistrării este 13, ceea ce satisface condiția dată. Prin urmare, conform condiției date, angajatul cu ID de angajat 13 este acum șters din tabelul angajatului.

2. GRUPARE CU CLAUZE

Clauza Group By este utilizată pentru a aranja tipuri similare de înregistrări în grupuri în Structured Query Language. Clauza de grupare din limbajul de interogare structurat este utilizată cu instrucțiunea Select. Group by clause este plasat după clauza where din instrucțiunea SQL. Clauza Group By este utilizată în mod special cu funcția de agregare, adică max (), min (), avg (), sum (), count () pentru a grupa rezultatul pe baza uneia sau mai multor coloane.

Sintaxa clauzei Group By:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

Sintaxa de mai sus va selecta toate datele sau înregistrările din tabel, dar va aranja toate acele date sau înregistrări în grupuri pe baza numelui coloanei dat în interogare.

Sintaxa clauzei Group By cu funcții agregate:

 SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME; 

Să înțelegem clauza Group By cu ajutorul exemplelor.

Luați în considerare tabelul angajaților cu următoarele date:

cel mai bun zâmbet din lume
E_ID Nume Salariu Oraș Desemnare Data_aderării Vârstă
1 Sakshi Kumari 50000 Mumbai Manager de proiect 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Inginer de sistem 24-12-2019 23
3 Anuja Sharma 40000 Jaipur Administrator 15-08-2021 26
4 Anushka Tripathi 90000 Mumbai Testere de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Manager de proiect 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Administrator 17-07-2019 26
7 vocea lui Baviskar 55000 Jaipur Inginer de sistem 2021-10-10 24
8 Acolo este Sheik 45000 Pune Inginer de software 2020-09-10 26
9 Swati Kumari 50000 Pune Testere de software 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Manager de proiect 2020-10-02 24
unsprezece Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Dezvoltator de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Manager de proiect 2017-11-10 25
cincisprezece Mohini Shah 38000 Pune Dezvoltator de software 2019-03-05 douăzeci

Exemplul 1:

Scrieți o interogare pentru a afișa toate înregistrările din tabelul de angajați, dar grupați rezultatele în funcție de coloana de vârstă.

Interogare:

 mysql> SELECT * FROM employees GROUP BY Age; 

Interogarea de mai sus va afișa toate înregistrările din tabelul de angajați, dar grupate după coloana de vârstă.

Veți obține următoarea ieșire:

CLAUZE SQL

Exemplul 2:

Scrieți o interogare pentru a afișa toate înregistrările din tabelul angajaților grupate după desemnare și salariu.

Interogare:

 mysql> SELECT * FROM employees GROUP BY Salary, Designation; 

Interogarea de mai sus va afișa toate înregistrările din tabelul de angajați, dar grupate după coloana salariu și desemnare.

Veți obține următoarea ieșire:

CLAUZE SQL

Exemple de clauză Group By folosind funcții de agregare

Exemplul 1:

Scrieți o interogare pentru a enumera numărul de angajați care lucrează la o anumită desemnare și grupați rezultatele după desemnarea angajatului.

Interogare:

 mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation; 

Interogarea de mai sus va afișa desemnarea cu numărul respectiv de angajați care lucrează pe acea desemnare. Toate aceste rezultate vor fi grupate după coloana de desemnare.

Veți obține următoarea ieșire:

CLAUZE SQL

Conform rezultatelor așteptate, este afișată desemnarea cu numărul de angajați respectiv.

Exemplul 2:

Scrieți o interogare pentru a afișa suma salariului unui angajat în funcție de oraș, grupată după vârsta unui angajat.

Interogare:

 mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City; 

Interogarea de mai sus va calcula mai întâi suma salariilor care lucrează în fiecare oraș, iar apoi va afișa suma salarială cu salariul respectiv dar grupată pe coloana de vârstă.

Veți obține următoarea ieșire:

CLAUZE SQL

Conform rezultatelor așteptate, este afișată suma salariului angajatului în funcție de orașul din care face parte angajatul. Dacă doi angajați aparțin aceluiași oraș, atunci vor fi într-un singur grup.

3. AVÂND CLAUZĂ:

Când trebuie să plasăm orice condiții pe coloana tabelului, folosim clauza WHERE în SQL. Dar dacă vrem să folosim orice condiție pe o coloană din clauza Group By în acel moment, vom folosi clauza HAVING cu clauza Group By pentru condițiile coloanei.

Sintaxă:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Luați în considerare tabelul angajaților cu următoarele date:

E_ID Nume Salariu Oraș Desemnare Data_aderării Vârstă
1 Sakshi Kumari 50000 Mumbai Manager de proiect 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Inginer de sistem 24-12-2019 23
3 Anuja Sharma 40000 Jaipur Administrator 15-08-2021 26
4 Anushka Tripathi 90000 Mumbai Testere de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Manager de proiect 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Administrator 17-07-2019 26
7 vocea lui Baviskar 55000 Jaipur Inginer de sistem 2021-10-10 24
8 Acolo este Sheik 45000 Pune Inginer de software 2020-09-10 26
9 Swati Kumari 50000 Pune Testere de software 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Manager de proiect 2020-10-02 24
unsprezece Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Dezvoltator de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Manager de proiect 2017-11-10 25
cincisprezece Mohini Shah 38000 Pune Dezvoltator de software 2019-03-05 douăzeci

Exemplul 1:

Scrieți o interogare pentru a afișa numele angajaților, salariul și orașul în care salariul maxim al angajatului este mai mare de 40000 și grupați rezultatele după desemnare.

Interogare:

 mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000; 

Veți obține următoarea ieșire:

CLAUZE SQL

Rezultatul de mai sus arată că numele angajatului, salariul și orașul unui angajat în care salariul angajatului este mai mare de 40000 grupate după desemnare. (Angajații cu o desemnare similară sunt plasați într-un grup, iar cei cu altă desemnare sunt plasați separat).

Exemplul 2:

Scrieți o interogare pentru a afișa numele angajaților și desemnarea în cazul în care suma salariului unui angajat este mai mare de 45000 și grupați rezultatele după oraș.

Interogare:

 mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000; 

Veți obține următoarea ieșire:

note de subsol de reducere
CLAUZE SQL

Ieșirea de mai sus arată numele angajatului, desemnarea și salariul unui angajat. Suma salariului este mai mare de 45000 grupate pe oraș. (Angajații cu orașe similare sunt plasați într-un grup, iar cei cu un alt oraș nu sunt similari sunt plasați separat).

4. ORDINE PRIN CLAUZĂ

Ori de câte ori dorim să sortăm ceva în SQL, folosim clauza ORDER BY. Clauza ORDER BY din SQL ne va ajuta să sortăm datele în funcție de coloana specifică a unui tabel. Aceasta înseamnă că toate datele stocate în coloana specifică pe care executăm clauza ORDER BY vor fi sortate. Valorile coloanei corespunzătoare vor fi afișate în secvența în care am obținut valorile în pasul anterior.

După cum știm cu toții, sortarea înseamnă fie în ORDINE ASCENDENTĂ, fie în ORDINE DESCENDĂTORĂ. În același mod, ORDER BY CLAUSE sortează datele în ordine crescătoare sau descrescătoare conform cerințelor noastre. Datele vor fi sortate în ordine crescătoare ori de câte ori cuvânt cheie ASC este folosit cu clauza ORDER by și cuvânt cheie DESC va sorta înregistrările în ordine descrescătoare.

În mod implicit, sortarea în SQL se va face folosind clauza ORDER BY în ordine ASCENDING dacă nu am menționat ordinea de sortare.

Înainte de a trece la exemplul clauzei ORDER BY pentru a sorta înregistrările, mai întâi ne vom uita la sintaxă, astfel încât ne va fi ușor să parcurgem exemplul.

Sintaxa clauzei ORDER BY fără cuvinte cheie asc și desc:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Sintaxa clauzei ORDER BY pentru a sorta în ordine crescătoare:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Sintaxa clauzei ORDER BY pentru a sorta în ordine descrescătoare:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Luați în considerare că avem un tabel de angajați cu următoarele date:

E_ID Nume Salariu Oraș Desemnare Data_aderării Vârstă
1 Sakshi Kumari 50000 Mumbai Manager de proiect 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Inginer de sistem 24-12-2019 23
3 Anuja Sharma 40000 Jaipur Administrator 15-08-2021 26
4 Anushka Tripathi 90000 Mumbai Testere de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Manager de proiect 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Administrator 17-07-2019 26
7 vocea lui Baviskar 55000 Jaipur Inginer de sistem 2021-10-10 24
8 Acolo este Sheik 45000 Pune Inginer de software 2020-09-10 26
9 Swati Kumari 50000 Pune Testere de software 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Manager de proiect 2020-10-02 24
unsprezece Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Dezvoltator de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Manager de proiect 2017-11-10 25
cincisprezece Mohini Shah 38000 Pune Dezvoltator de software 2019-03-05 douăzeci

Exemplul 1:

Scrieți o interogare pentru a sorta înregistrările în ordinea crescătoare a desemnării angajatului din tabelul de angajați.

Interogare:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Aici, într-o interogare SELECT, se aplică o clauză ORDER BY pe coloana „Desemnare” pentru a sorta înregistrările, dar nu am folosit cuvântul cheie ASC după clauza ORDER BY pentru a sorta în ordine crescătoare. Deci, implicit, datele vor fi sortate în ordine crescătoare dacă nu specificăm cuvântul cheie asc.

Veți obține următoarea ieșire:

CLAUZE SQL

Conform rezultatelor așteptate, înregistrările sunt afișate în ordinea crescătoare a desemnării angajatului.

Exemplul 2:

Scrieți o interogare pentru a afișa numele și salariul angajatului în ordinea crescătoare a salariului angajatului din tabelul angajaților.

Interogare:

 mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC; 

Aici, într-o interogare SELECT, o clauză ORDER BY este aplicată coloanei „Salariu” pentru a sorta înregistrările. Am folosit cuvântul cheie ASC pentru a sorta salariul angajatului în ordine crescătoare.

Veți obține următoarea ieșire:

CLAUZE SQL

Toate înregistrările sunt afișate în ordinea crescătoare a salariului angajatului.

Exemplul 3:

Scrieți o interogare pentru a sorta datele în ordinea descrescătoare a numelui angajatului stocat în tabelul de angajați.

Interogare:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Aici am folosit clauza ORDER BY cu interogarea SELECT aplicată pe coloana Nume pentru a sorta datele. Am folosit cuvântul cheie DESC după clauza ORDER BY pentru a sorta datele în ordine descrescătoare.

Veți obține următoarea ieșire:

CLAUZE SQL

Toate înregistrările sunt afișate în ordinea descrescătoare a numelui angajatului.