logo

klauzuly SQL

  • Klauzula SQL nám pomáha získať sadu alebo zväzky záznamov z tabuľky.
  • Klauzula SQL nám pomáha špecifikovať podmienku pre stĺpce alebo záznamy tabuľky.

Rôzne klauzuly dostupné v Structured Query Language sú nasledovné:

  1. KDE klauzula
  2. SKUPINA PODĽA klauzuly
  3. MAJÚCI klauzulu
  4. OBJEDNÁVKA PODĽA klauzuly

Pozrime sa postupne na každú klauzulu s príkladom. Na písanie dopytov v príkladoch použijeme databázu MySQL.

1. klauzula KDE

Klauzula WHERE v SQL sa používa s dotazom SELECT, čo je jeden z príkazov jazyka na manipuláciu s údajmi. KDE možno použiť klauzuly na obmedzenie počtu riadkov, ktoré sa majú zobraziť v sade výsledkov, vo všeobecnosti to pomáha pri filtrovaní záznamov. Vráti len tie dotazy, ktoré spĺňajú špecifické podmienky klauzuly WHERE. Klauzula WHERE sa používa v príkazoch SELECT, UPDATE, DELETE atď.

Klauzula WHERE s dotazom SELECT

Symbol hviezdičky sa používa s klauzulou WHERE v dotaze SELECT na získanie všetkých hodnôt stĺpcov pre každý záznam z tabuľky.

Syntax klauzuly where s výberovým dotazom na získanie všetkých hodnôt stĺpcov pre každý záznam z tabuľky:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Ak podľa požiadavky chceme získať iba selektívne stĺpce, použijeme nižšie uvedenú syntax:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Zvážte tabuľku zamestnancov s nasledujúcimi údajmi:

E_ID názov Plat Mesto Označenie Dátum_pripojenia Vek
1 Sakshi Kumari 50 000 Bombaj Projektový manažér 20.06.2021 24
2 Tejaswini Naik 75 000 Dillí Systémový inžinier 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur manažér 2021-08-15 26
4 Anushka Tripathi 90 000 Bombaj Testeri softvéru 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektový manažér 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore manažér 2019-07-17 26
7 Baviskarov hlas 55 000 Jaipur Systémový inžinier 2021-10-10 24
8 Tu je Sheik 45 000 Pune Softvérový inžinier 2020-09-10 26
9 Swati Kumari 50 000 Pune Testeri softvéru 1. 1. 2021 25
10 Mayuri Patel 60 000 Bombaj Projektový manažér 2020-10-02 24
jedenásť Simran Khanna 45 500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Dillí Vývojár softvéru 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Dillí Projektový manažér 2017-11-10 25
pätnásť Mohini Shah 38 000 Pune Vývojár softvéru 2019-03-05 dvadsať

Príklad 1:

Napíšte dotaz na získanie všetkých tých záznamov zamestnanca, kde je mzda zamestnanca vyššia ako 50 000.

Dopyt:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

Vyššie uvedený dotaz zobrazí všetky záznamy zamestnanca, kde je mzda zamestnanca vyššia ako 50 000. Mzda pod 50 000 sa podľa podmienok nezobrazí.

Získate nasledujúci výstup:

klauzuly SQL

Podľa očakávaného výkonu sú zobrazené len tie záznamy, kde je mzda zamestnanca vyššia ako 50 000. V tabuľke zamestnanca je šesť záznamov, ktoré spĺňajú danú podmienku.

Príklad 2:

Napíšte dotaz na aktualizáciu záznamu zamestnanca a nastavte aktualizované meno ako „Harshada Sharma“, kde názov mesta zamestnanca je Jaipur.

Dopyt:

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

klauzuly SQL

Vyššie uvedený dotaz aktualizuje meno zamestnanca na „Harshada Sharma“, kde mesto zamestnanca je Jaipur.

Na overenie, či sú záznamy aktualizované alebo nie, spustíme výberový dotaz.

 mysql> SELECT * FROM employees; 

klauzuly SQL

V tabuľke zamestnanca je len jeden záznam, kde je mesto zamestnanca „Jaipur“. ID záznamu je 3, čo spĺňa danú podmienku. Preto sa podľa danej podmienky meno zamestnanca s ID zamestnanca 3 teraz zmení na „Harshada Sharma“.

Príklad 3:

Napíšte dotaz na vymazanie záznamu zamestnanca, kde je dátum nástupu zamestnanca '2013-12-12'.

java skener

Dopyt:

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

klauzuly SQL

Vyššie uvedený dotaz vymaže údaje o zamestnancovi, ktorého dátum nástupu je '2013-12-12'.

Na overenie výsledkov vyššie uvedeného dotazu vykonáme výberový dotaz.

 mysql> SELECT *FROM employees; 

klauzuly SQL

V tabuľke zamestnancov je len jeden záznam, kde je dátum nástupu zamestnanca '2013-12-12'. ID záznamu je 13, čo spĺňa danú podmienku. Preto podľa danej podmienky je teraz zamestnanec s ID zamestnanca 13 vymazaný z tabuľky zamestnanca.

2. SKUPINA PODĽA DOLOŽKY

Klauzula Group By sa používa na usporiadanie podobných druhov záznamov do skupín v štruktúrovanom jazyku dotazov. Klauzula Group by v Structured Query Language sa používa s príkazom Select. Skupina podľa klauzuly sa v príkaze SQL umiestni za klauzulou where. Klauzula Group By sa používa špeciálne s agregovanou funkciou, t. j. max (), min (), avg (), sum (), count () na zoskupenie výsledku na základe jedného alebo viacerých stĺpcov.

Syntax klauzuly Group By:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

Vyššie uvedená syntax vyberie všetky údaje alebo záznamy z tabuľky, ale usporiada všetky tieto údaje alebo záznamy do skupín na základe názvu stĺpca uvedeného v dotaze.

Syntax klauzuly Zoskupiť podľa s agregačnými funkciami:

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

Poďme pochopiť klauzulu Group By pomocou príkladov.

Zvážte tabuľku zamestnancov s nasledujúcimi údajmi:

E_ID názov Plat Mesto Označenie Dátum_pripojenia Vek
1 Sakshi Kumari 50 000 Bombaj Projektový manažér 20.06.2021 24
2 Tejaswini Naik 75 000 Dillí Systémový inžinier 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur manažér 2021-08-15 26
4 Anushka Tripathi 90 000 Bombaj Testeri softvéru 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektový manažér 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore manažér 2019-07-17 26
7 Baviskarov hlas 55 000 Jaipur Systémový inžinier 2021-10-10 24
8 Tu je Sheik 45 000 Pune Softvérový inžinier 2020-09-10 26
9 Swati Kumari 50 000 Pune Testeri softvéru 1. 1. 2021 25
10 Mayuri Patel 60 000 Bombaj Projektový manažér 2020-10-02 24
jedenásť Simran Khanna 45 500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Dillí Vývojár softvéru 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Dillí Projektový manažér 2017-11-10 25
pätnásť Mohini Shah 38 000 Pune Vývojár softvéru 2019-03-05 dvadsať

Príklad 1:

Napíšte dotaz na zobrazenie všetkých záznamov tabuľky zamestnancov, ale zoskupte výsledky podľa stĺpca veku.

Dopyt:

 mysql> SELECT * FROM employees GROUP BY Age; 

Vyššie uvedený dotaz zobrazí všetky záznamy tabuľky zamestnancov, ale zoskupené podľa stĺpca veku.

Získate nasledujúci výstup:

klauzuly SQL

Príklad 2:

Napíšte dotaz na zobrazenie všetkých záznamov tabuľky zamestnancov zoskupených podľa označenia a platu.

cpp sa rovná

Dopyt:

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

Vyššie uvedený dotaz zobrazí všetky záznamy tabuľky zamestnancov, ale zoskupené podľa stĺpca plat a označenie.

Získate nasledujúci výstup:

klauzuly SQL

Príklady klauzuly Group By pomocou agregačných funkcií

Príklad 1:

Napíšte dotaz, v ktorom uvediete počet zamestnancov pracujúcich na konkrétnom označení a zoskupte výsledky podľa označenia zamestnanca.

Dopyt:

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

Vyššie uvedený dotaz zobrazí označenie s príslušným počtom zamestnancov pracujúcich na tomto označení. Všetky tieto výsledky budú zoskupené podľa stĺpca označenia.

Získate nasledujúci výstup:

klauzuly SQL

Podľa očakávaného výkonu sa zobrazí označenie s príslušným počtom zamestnancov.

Príklad 2:

Napíšte dotaz na zobrazenie súčtu platu zamestnanca podľa mesta zoskupeného podľa veku zamestnanca.

Dopyt:

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

Vyššie uvedený dotaz najprv vypočíta súčet platov pracujúcich v každom meste a potom zobrazí súčet platu s príslušným platom, ale zoskupený podľa stĺpca veku.

Získate nasledujúci výstup:

klauzuly SQL

Podľa očakávaného výkonu je zobrazená suma mzdy zamestnanca podľa mesta, do ktorého zamestnanec patrí. Ak dvaja zamestnanci patria do toho istého mesta, potom budú v jednej skupine.

3. MAJÚCI DORUČU:

Keď potrebujeme umiestniť akékoľvek podmienky do stĺpca tabuľky, použijeme v SQL klauzulu WHERE. Ale ak chceme v tom čase použiť akúkoľvek podmienku na stĺpec v klauzule Group By, použijeme klauzulu HAVING s klauzulou Group By pre podmienky stĺpca.

Syntax:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Zvážte tabuľku zamestnancov s nasledujúcimi údajmi:

E_ID názov Plat Mesto Označenie Dátum_pripojenia Vek
1 Sakshi Kumari 50 000 Bombaj Projektový manažér 20.06.2021 24
2 Tejaswini Naik 75 000 Dillí Systémový inžinier 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur manažér 2021-08-15 26
4 Anushka Tripathi 90 000 Bombaj Testeri softvéru 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektový manažér 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore manažér 2019-07-17 26
7 Baviskarov hlas 55 000 Jaipur Systémový inžinier 2021-10-10 24
8 Tu je Sheik 45 000 Pune Softvérový inžinier 2020-09-10 26
9 Swati Kumari 50 000 Pune Testeri softvéru 1. 1. 2021 25
10 Mayuri Patel 60 000 Bombaj Projektový manažér 2020-10-02 24
jedenásť Simran Khanna 45 500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Dillí Vývojár softvéru 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Dillí Projektový manažér 2017-11-10 25
pätnásť Mohini Shah 38 000 Pune Vývojár softvéru 2019-03-05 dvadsať

Príklad 1:

Napíšte dotaz na zobrazenie mena zamestnancov, platu a mesta, kde je maximálny plat zamestnanca vyšší ako 40 000, a zoskupte výsledky podľa označenia.

Dopyt:

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

Získate nasledujúci výstup:

klauzuly SQL

Vyššie uvedený výstup ukazuje, že meno zamestnanca, plat a mesto zamestnanca, kde je plat zamestnanca vyšší ako 40 000, zoskupené podľa označenia. (Zamestnanci s podobným označením sú zaradení do jednej skupiny a zamestnanci s iným označením sú zaradení samostatne).

Príklad 2:

Napíšte dotaz na zobrazenie mien zamestnancov a označenia, kde je súčet platu zamestnanca väčší ako 45 000 a zoskupte výsledky podľa mesta.

Dopyt:

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

Získate nasledujúci výstup:

klauzuly SQL

Vyššie uvedený výstup zobrazuje meno zamestnanca, označenie a plat zamestnanca. Súčet platov je väčší ako 45 000 zoskupených podľa mesta. (Zamestnanci s podobnými mestami sú zaradení do jednej skupiny a zamestnanci s iným mestom nie sú podobní sú umiestnení samostatne).

4. OBJEDNÁVKA PODĽA klauzuly

Kedykoľvek chceme zoradiť čokoľvek v SQL, použijeme klauzulu ORDER BY. Klauzula ORDER BY v SQL nám pomôže zoradiť údaje na základe konkrétneho stĺpca tabuľky. To znamená, že všetky údaje uložené v konkrétnom stĺpci, na ktorom vykonávame klauzulu ORDER BY, budú zoradené. Zodpovedajúce hodnoty stĺpcov sa zobrazia v poradí, v akom sme získali hodnoty v predchádzajúcom kroku.

Ako všetci vieme, triedenie znamená buď vzostupne alebo zostupne. Rovnakým spôsobom, ORDER BY CLAUSE triedi údaje vzostupne alebo zostupne podľa našej požiadavky. Údaje budú zoradené vo vzostupnom poradí vždy, keď bude kľúčové slovo ASC sa používa s klauzulou ORDER by a Kľúčové slovo DESC zoradí záznamy v zostupnom poradí.

V predvolenom nastavení sa triedenie v SQL vykoná pomocou klauzuly ORDER BY vo vzostupnom poradí, ak sme poradie triedenia neuviedli.

Predtým, ako prejdeme k príkladu klauzuly ORDER BY na triedenie záznamov, najprv sa pozrieme na syntax, aby sme mohli jednoducho prejsť príkladom.

Syntax klauzuly ORDER BY bez kľúčového slova asc a desc:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Syntax klauzuly ORDER BY na zoradenie vo vzostupnom poradí:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Syntax klauzuly ORDER BY na zoradenie v zostupnom poradí:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Uvažujme, že máme tabuľku zamestnancov s nasledujúcimi údajmi:

E_ID názov Plat Mesto Označenie Dátum_pripojenia Vek
1 Sakshi Kumari 50 000 Bombaj Projektový manažér 20.06.2021 24
2 Tejaswini Naik 75 000 Dillí Systémový inžinier 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur manažér 2021-08-15 26
4 Anushka Tripathi 90 000 Bombaj Testeri softvéru 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektový manažér 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore manažér 2019-07-17 26
7 Baviskarov hlas 55 000 Jaipur Systémový inžinier 2021-10-10 24
8 Tu je Sheik 45 000 Pune Softvérový inžinier 2020-09-10 26
9 Swati Kumari 50 000 Pune Testeri softvéru 1. 1. 2021 25
10 Mayuri Patel 60 000 Bombaj Projektový manažér 2020-10-02 24
jedenásť Simran Khanna 45 500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Dillí Vývojár softvéru 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Dillí Projektový manažér 2017-11-10 25
pätnásť Mohini Shah 38 000 Pune Vývojár softvéru 2019-03-05 dvadsať

Príklad 1:

Napíšte dotaz na zoradenie záznamov vo vzostupnom poradí podľa označenia zamestnanca z tabuľky zamestnancov.

Dopyt:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Tu v dotaze SELECT sa na stĺpec „Označenie“ použije klauzula ORDER BY na zoradenie záznamov, ale nepoužili sme kľúčové slovo ASC za klauzulou ORDER BY na zoradenie vo vzostupnom poradí. Ak teda nešpecifikujeme kľúčové slovo asc, dáta budú štandardne zoradené vzostupne.

Získate nasledujúci výstup:

klauzuly SQL

Podľa očakávaného výkonu sa záznamy zobrazujú vo vzostupnom poradí podľa označenia zamestnanca.

Príklad 2:

Napíšte dotaz na zobrazenie mena zamestnanca a platu vo vzostupnom poradí platu zamestnanca z tabuľky zamestnancov.

Dopyt:

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

Tu v dotaze SELECT sa na stĺpec „Plat“ použije klauzula ORDER BY na zoradenie záznamov. Kľúčové slovo ASC sme použili na zoradenie platu zamestnanca vzostupne.

Získate nasledujúci výstup:

klauzuly SQL

Všetky záznamy sa zobrazujú vzostupne podľa mzdy zamestnanca.

Príklad 3:

Napíšte dotaz na zoradenie údajov v zostupnom poradí podľa mena zamestnanca uloženého v tabuľke zamestnancov.

Dopyt:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Tu sme na zoradenie údajov použili klauzulu ORDER BY s dotazom SELECT aplikovaným na stĺpec Názov. Kľúčové slovo DESC sme použili za klauzulou ORDER BY na zoradenie údajov v zostupnom poradí.

Získate nasledujúci výstup:

Sree Ramanujan
klauzuly SQL

Všetky záznamy sú zobrazené v zostupnom poradí podľa mena zamestnanca.