logo

SQL ZÁRADÉKOK

  • Az SQL záradék segít lekérni egy rekordkészletet vagy -csomagokat a táblából.
  • Az SQL záradék segít feltételt megadni a tábla oszlopaiban vagy rekordjaiban.

A Strukturált lekérdezési nyelvben elérhető különböző záradékok a következők:

  1. AHOL ZÁRADÉK
  2. CSOPORTOSÍTÁS ZÁRADÉK SZERINT
  3. BESZÁMÍTÁS
  4. RENDELÉS ZÁRADÉKKAL

Lássuk az egyes tagmondatokat egyenként egy példával. A példákban a lekérdezések írásához MySQL adatbázist fogunk használni.

1. WHERE ZÁRADÉK

Az SQL-ben egy WHERE záradékot használnak a SELECT lekérdezéssel, amely az egyik adatkezelési nyelvi parancs. A WHERE záradékokkal korlátozható az eredményhalmazban megjelenítendő sorok száma, általában segít a rekordok szűrésében. Csak azokat a lekérdezéseket adja vissza, amelyek megfelelnek a WHERE záradék speciális feltételeinek. A WHERE záradékot a SELECT, UPDATE, DELETE stb. utasításokban használják.

WHERE záradék a SELECT lekérdezéssel

A Csillag szimbólum a WHERE záradékkal együtt használatos a SELECT lekérdezésben, hogy a tábla minden rekordjához tartozó összes oszlopértéket lekérje.

A where záradék szintaxisa kiválasztási lekérdezéssel az összes rekord összes oszlopértékének lekéréséhez egy táblázatból:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Ha a követelménynek megfelelően csak szelektív oszlopokat szeretnénk lekérni, akkor az alábbi szintaxist használjuk:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Tekintsük az alkalmazottak táblázatát a következő adatokkal:

E_ID Név Fizetés Város Kijelölés Csatlakozás dátuma Kor
1 Saksi Kumari 50000 Mumbai Projekt menedzser 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Rendszer mérnök 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Menedzser 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Szoftvertesztelők 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Projekt menedzser 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Menedzser 2019-07-17 26
7 Baviskar hangja 55000 Jaipur Rendszer mérnök 2021-10-10 24
8 Ott van Sheik 45000 Pune Szoftvermérnök 2020-09-10 26
9 Swati Kumari 50000 Pune Szoftvertesztelők 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projekt menedzser 2020-10-02 24
tizenegy Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Szoftverfejlesztő 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Projekt menedzser 2017-11-10 25
tizenöt Mohini Shah 38000 Pune Szoftverfejlesztő 2019-03-05 húsz

1. példa:

Írjon lekérdezést, hogy lekérje az összes olyan alkalmazott nyilvántartását, ahol az alkalmazott fizetése meghaladja az 50 000-et.

Lekérdezés:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

A fenti lekérdezés megjeleníti az összes olyan alkalmazott nyilvántartását, ahol a munkavállaló fizetése meghaladja az 50 000-et. 50 000 alatti fizetés nem jelenik meg a feltételek szerint.

húrhoz hasonlítani

A következő kimenetet kapod:

SQL ZÁRADÉKOK

Az elvárt teljesítmény szerint csak azok a rekordok jelennek meg, ahol a munkavállaló fizetése meghaladja az 50000-et. A munkavállalói táblázatban hat olyan rekord található, amely megfelel az adott feltételnek.

2. példa:

Írjon lekérdezést az alkalmazott nyilvántartásának frissítéséhez, és állítsa be a frissített nevet „Harshada Sharma”-ra, ahol az alkalmazott városának neve Jaipur.

Lekérdezés:

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

SQL ZÁRADÉKOK

A fenti lekérdezés az alkalmazott nevét „Harshada Sharma”-ra frissíti, ahol az alkalmazott városa Jaipur.

Annak ellenőrzésére, hogy a rekordok frissültek-e vagy sem, kiválasztási lekérdezést futtatunk.

 mysql> SELECT * FROM employees; 

SQL ZÁRADÉKOK

Csak egy olyan bejegyzés található az alkalmazottak táblázatában, ahol az alkalmazott városa „Jaipur”. A rekord azonosítója 3, amely megfelel az adott feltételnek. Ezért az adott feltételnek megfelelően a 3. alkalmazotti azonosítóval rendelkező alkalmazott neve „Harshada Sharma”-ra módosul.

3. példa:

Írjon lekérdezést egy olyan munkavállaló rekordjának törléséhez, ahol a munkavállaló csatlakozási dátuma „2013-12-12”.

Lekérdezés:

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

SQL ZÁRADÉKOK

A fenti lekérdezés törli annak a munkavállalónak a munkavállalói adatait, akinek a csatlakozási dátuma '2013-12-12'.

java int karakterláncként

A fenti lekérdezés eredményének ellenőrzéséhez végrehajtjuk a kiválasztási lekérdezést.

 mysql> SELECT *FROM employees; 

SQL ZÁRADÉKOK

Csak egy olyan rekord van a munkavállalói táblázatban, ahol a munkavállaló csatlakozási dátuma '2013-12-12'. A rekord azonosítója 13, ami megfelel az adott feltételnek. Ezért az adott feltételnek megfelelően a 13-as alkalmazotti azonosítójú munkavállaló törlésre kerül a munkavállalói táblából.

2. CSOPORTOSÍTÁS ZÁRADÉK SZERINT

A Group By záradék a hasonló típusú rekordok csoportokba rendezésére szolgál a Strukturált lekérdezési nyelvben. A Strukturált lekérdezési nyelv Csoportosítási záradéka a Select utasítással együtt használatos. A záradék szerinti csoportosítás az SQL utasításban a where záradék után kerül elhelyezésre. A Group By záradékot kifejezetten az összesítő függvénnyel használják, azaz max (), min (), átlag (), összeg (), count () az eredmény csoportosítására egy vagy több oszlop alapján.

A Group By záradék szintaxisa:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

A fenti szintaxis az összes adatot vagy rekordot kijelöli a táblából, de az összes adatot vagy rekordot csoportokba rendezi a lekérdezésben megadott oszlopnév alapján.

A Group By záradék szintaxisa aggregált függvényekkel:

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

Értsük meg a Group By záradékot példák segítségével.

Tekintsük az alkalmazottak táblázatát a következő adatokkal:

E_ID Név Fizetés Város Kijelölés Csatlakozás dátuma Kor
1 Saksi Kumari 50000 Mumbai Projekt menedzser 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Rendszer mérnök 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Menedzser 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Szoftvertesztelők 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Projekt menedzser 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Menedzser 2019-07-17 26
7 Baviskar hangja 55000 Jaipur Rendszer mérnök 2021-10-10 24
8 Ott van Sheik 45000 Pune Szoftvermérnök 2020-09-10 26
9 Swati Kumari 50000 Pune Szoftvertesztelők 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projekt menedzser 2020-10-02 24
tizenegy Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Szoftverfejlesztő 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Projekt menedzser 2017-11-10 25
tizenöt Mohini Shah 38000 Pune Szoftverfejlesztő 2019-03-05 húsz

1. példa:

Írjon lekérdezést az alkalmazottak tábla összes rekordjának megjelenítéséhez, de csoportosítsa az eredményeket az életkor oszlop alapján.

Lekérdezés:

 mysql> SELECT * FROM employees GROUP BY Age; 

A fenti lekérdezés megjeleníti az alkalmazottak tábla összes rekordját, de az életkor oszlop szerint csoportosítva.

A következő kimenetet kapod:

SQL ZÁRADÉKOK

2. példa:

Írjon lekérdezést az alkalmazottak tábla összes rekordjának megjelenítéséhez, megnevezés és fizetés szerint csoportosítva.

Lekérdezés:

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

A fenti lekérdezés megjeleníti az alkalmazottak tábla összes rekordját, de a fizetés és megnevezés oszlop szerint csoportosítva.

A következő kimenetet kapod:

SQL ZÁRADÉKOK

Példák az összesített függvényeket használó Group By záradékra

1. példa:

Írjon lekérdezést az adott megjelölésen dolgozó alkalmazottak számának felsorolásához, és csoportosítsa az eredményeket az alkalmazott megnevezése szerint.

hogyan határozzuk meg a monitor méretét

Lekérdezés:

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

A fenti lekérdezés megjeleníti a megnevezést az adott megjelölésen dolgozó alkalmazottak számával. Mindezek az eredmények a jelölési oszlop szerint lesznek csoportosítva.

A következő kimenetet kapod:

SQL ZÁRADÉKOK

A várható teljesítménynek megfelelően megjelenik a jelölés a megfelelő alkalmazottak számával.

2. példa:

Írjon lekérdezést, hogy megjelenítse a munkavállaló fizetésének összegét a város szerint, a munkavállaló életkora szerint csoportosítva.

Lekérdezés:

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

A fenti lekérdezés először kiszámolja az egyes városokban dolgozó fizetések összegét, majd megjeleníti a bérösszeget az adott fizetéssel, de életkor oszlop szerint csoportosítva.

A következő kimenetet kapod:

SQL ZÁRADÉKOK

A várható teljesítmény szerint a munkavállalói fizetés összege jelenik meg a város szerint, amelyhez a munkavállaló tartozik. Ha két alkalmazott ugyanahhoz a városhoz tartozik, akkor egy csoportba kerülnek.

3. BEKÖTÉS:

Ha bármilyen feltételt kell elhelyeznünk a tábla oszlopában, akkor az SQL-ben a WHERE záradékot használjuk. Ha azonban bármilyen feltételt szeretnénk használni egy oszlopon a Group By záradékban, akkor a HAVING záradékot a Group By záradékkal együtt használjuk az oszlopfeltételekhez.

Szintaxis:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Tekintsük az alkalmazottak táblázatát a következő adatokkal:

E_ID Név Fizetés Város Kijelölés Csatlakozás dátuma Kor
1 Saksi Kumari 50000 Mumbai Projekt menedzser 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Rendszer mérnök 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Menedzser 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Szoftvertesztelők 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Projekt menedzser 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Menedzser 2019-07-17 26
7 Baviskar hangja 55000 Jaipur Rendszer mérnök 2021-10-10 24
8 Ott van Sheik 45000 Pune Szoftvermérnök 2020-09-10 26
9 Swati Kumari 50000 Pune Szoftvertesztelők 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projekt menedzser 2020-10-02 24
tizenegy Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Szoftverfejlesztő 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Projekt menedzser 2017-11-10 25
tizenöt Mohini Shah 38000 Pune Szoftverfejlesztő 2019-03-05 húsz

1. példa:

Írjon lekérdezést az alkalmazottak nevének, fizetésének és városának megjelenítéséhez, ahol a munkavállaló maximális fizetése meghaladja a 40 000-et, és csoportosítsa az eredményeket megnevezések szerint.

Lekérdezés:

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

A következő kimenetet kapod:

SQL ZÁRADÉKOK

A fenti kimenet azt mutatja, hogy a munkavállaló neve, fizetése és városa annak az alkalmazottnak, akinél a munkavállaló fizetése meghaladja a 40 000-et, megnevezés szerint csoportosítva. (A hasonló beosztású munkavállalók egy csoportba, a más megjelölésűek külön kerülnek elhelyezésre).

tigris oroszlán különbség

2. példa:

Írjon lekérdezést az alkalmazottak nevének és megnevezésének megjelenítéséhez, ahol egy alkalmazott fizetésének összege nagyobb, mint 45000, és csoportosítsa az eredményeket városok szerint.

Lekérdezés:

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

A következő kimenetet kapod:

SQL ZÁRADÉKOK

A fenti kimenet mutatja az alkalmazott nevét, megnevezését és fizetését. A fizetés összege városonkénti csoportosításban meghaladja a 45000-et. (A hasonló városokkal rendelkező munkavállalók egy csoportba kerülnek, a nem hasonló városokkal rendelkezők pedig külön kerülnek elhelyezésre).

4. RENDELÉS ZÁRADÉKKAL

Amikor bármit rendezni akarunk az SQL-ben, az ORDER BY záradékot használjuk. Az ORDER BY záradék az SQL-ben segít az adatok rendezésében a tábla adott oszlopa alapján. Ez azt jelenti, hogy abban az oszlopban tárolt összes adat, amelyen az ORDER BY záradékot végrehajtjuk, rendezve lesz. A megfelelő oszlopértékek abban a sorrendben jelennek meg, ahogyan az előző lépésben megkaptuk az értékeket.

Mint mindannyian tudjuk, a szortírozás NÖVEKVŐ vagy CSÖKKENŐ RENDBEN. Ugyanígy az ORDER BY CLAUSE az adatokat növekvő vagy csökkenő sorrendbe rendezi a követelményeink szerint. Az adatok növekvő sorrendben lesznek rendezve, amikor a ASC kulcsszó az ORDER by záradékkal együtt használatos, és a DESC kulcsszó csökkenő sorrendbe rendezi a rekordokat.

Alapértelmezés szerint az SQL-ben a rendezés az ORDER BY záradékkal történik NÖVEKEDŐ sorrendben, ha nem említettük a rendezési sorrendet.

Mielőtt az ORDER BY záradék példája felé haladnánk a rekordok rendezésére, először a szintaxist nézzük meg, így könnyű lesz végigmenni a példán.

Az ORDER BY záradék szintaxisa asc és desc kulcsszó nélkül:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Az ORDER BY záradék szintaxisa növekvő sorrendben:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Az ORDER BY záradék szintaxisa a csökkenő sorrendbe rendezéshez:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Tegyük fel, hogy van egy alkalmazotti táblázatunk a következő adatokkal:

E_ID Név Fizetés Város Kijelölés Csatlakozás dátuma Kor
1 Saksi Kumari 50000 Mumbai Projekt menedzser 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Rendszer mérnök 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Menedzser 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Szoftvertesztelők 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Projekt menedzser 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Menedzser 2019-07-17 26
7 Baviskar hangja 55000 Jaipur Rendszer mérnök 2021-10-10 24
8 Ott van Sheik 45000 Pune Szoftvermérnök 2020-09-10 26
9 Swati Kumari 50000 Pune Szoftvertesztelők 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projekt menedzser 2020-10-02 24
tizenegy Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Szoftverfejlesztő 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Projekt menedzser 2017-11-10 25
tizenöt Mohini Shah 38000 Pune Szoftverfejlesztő 2019-03-05 húsz

1. példa:

Írjon lekérdezést, hogy a rekordokat az alkalmazottak táblájából az alkalmazott megnevezésének növekvő sorrendjében rendezze.

Lekérdezés:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Itt a SELECT lekérdezésben egy ORDER BY záradék kerül alkalmazásra a „Designation” oszlopban a rekordok rendezéséhez, de nem használtuk az ASC kulcsszót az ORDER BY záradék után a növekvő sorrendben történő rendezéshez. Tehát alapértelmezés szerint az adatok növekvő sorrendben lesznek rendezve, ha nem adunk meg asc kulcsszót.

A következő kimenetet kapod:

SQL ZÁRADÉKOK

A várható kimenetnek megfelelően a rekordok a munkavállaló megnevezése szerint növekvő sorrendben jelennek meg.

2. példa:

Írjon lekérdezést az alkalmazott nevének és fizetésének az alkalmazottak táblájából az alkalmazott fizetése szerinti növekvő sorrendben történő megjelenítéséhez.

Lekérdezés:

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

Itt a SELECT lekérdezésben egy ORDER BY záradék kerül alkalmazásra a „Bérek” oszlopban a rekordok rendezéséhez. Az ASC kulcsszót használtuk a dolgozók fizetésének növekvő sorrendbe rendezésére.

A következő kimenetet kapod:

linux parancsikonok
SQL ZÁRADÉKOK

Az összes rekord a munkavállaló fizetése szerinti növekvő sorrendben jelenik meg.

3. példa:

Írjon lekérdezést az adatok csökkenő sorrendbe rendezéséhez az alkalmazottak táblájában tárolt alkalmazott neve szerint.

Lekérdezés:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Itt az ORDER BY záradékot használtuk a Név oszlopban alkalmazott SELECT lekérdezéssel az adatok rendezésére. Az ORDER BY záradék után a DESC kulcsszót használtuk az adatok csökkenő sorrendbe rendezéséhez.

A következő kimenetet kapod:

SQL ZÁRADÉKOK

Az összes rekord az alkalmazott nevének csökkenő sorrendjében jelenik meg.