- Die SQL-Klausel hilft uns, eine Reihe oder Bündel von Datensätzen aus der Tabelle abzurufen.
- Die SQL-Klausel hilft uns, eine Bedingung für die Spalten oder Datensätze einer Tabelle anzugeben.
In der Structured Query Language sind folgende verschiedene Klauseln verfügbar:
- WHERE-KLAUSEL
- GRUPPE NACH KLAUSEL
- KLAUSEL HABEN
- Reihenfolge nach Klausel
Sehen wir uns jede Klausel einzeln anhand eines Beispiels an. Wir werden die MySQL-Datenbank zum Schreiben der Abfragen in den Beispielen verwenden.
1. WHERE-Klausel
Eine WHERE-Klausel in SQL wird mit der SELECT-Abfrage verwendet, einem der Befehle der Datenbearbeitungssprache. WHERE-Klauseln können verwendet werden, um die Anzahl der im Ergebnissatz anzuzeigenden Zeilen zu begrenzen. Dies hilft im Allgemeinen beim Filtern der Datensätze. Es werden nur die Abfragen zurückgegeben, die die spezifischen Bedingungen der WHERE-Klausel erfüllen. Die WHERE-Klausel wird in SELECT-, UPDATE-, DELETE-Anweisungen usw. verwendet.
WHERE-Klausel mit SELECT-Abfrage
Das Sternchensymbol wird mit einer WHERE-Klausel in einer SELECT-Abfrage verwendet, um alle Spaltenwerte für jeden Datensatz aus einer Tabelle abzurufen.
Syntax der Where-Klausel mit einer Auswahlabfrage zum Abrufen aller Spaltenwerte für jeden Datensatz aus einer Tabelle:
SELECT * FROM TABLENAME WHERE CONDITION;
Wenn wir gemäß der Anforderung nur ausgewählte Spalten abrufen möchten, verwenden wir die folgende Syntax:
SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION;
Betrachten Sie die Mitarbeitertabelle mit den folgenden Daten:
E_ID | Name | Gehalt | Stadt | Bezeichnung | Beitrittsdatum | Alter |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50000 | Mumbai | Projektmanager | 20.06.2021 | 24 |
2 | Tejaswini Naik | 75000 | Delhi | Systemingenieur | 24.12.2019 | 23 |
3 | Anuja Sharma | 40000 | Jaipur | Manager | 15.08.2021 | 26 |
4 | Anushka Tripathi | 90000 | Mumbai | Software Tester | 13.06.2021 | 24 |
5 | Rucha Jagtap | 45000 | Bangalore | Projektmanager | 09.08.2020 | 23 |
6 | Rutuja Deshmukh | 60000 | Bangalore | Manager | 17.07.2019 | 26 |
7 | Baviskars Stimme | 55000 | Jaipur | Systemingenieur | 10.10.2021 | 24 |
8 | Da ist Scheich | 45000 | Pune | Softwareentwickler | 10.09.2020 | 26 |
9 | Swati Kumari | 50000 | Pune | Software Tester | 01.01.2021 | 25 |
10 | Mayuri Patel | 60000 | Mumbai | Projektmanager | 02.10.2020 | 24 |
elf | Simran Khanna | 45500 | Kolhapur | Personalwesen | 02.01.2019 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareentwickler | 10.09.2016 | 25 |
13 | Kiran Maheshwari | 50000 | Nashik | Personalwesen | 12.12.2013 | 23 |
14 | Tejal Jain | 40000 | Delhi | Projektmanager | 10.11.2017 | 25 |
fünfzehn | Mohini Shah | 38000 | Pune | Softwareentwickler | 05.03.2019 | zwanzig |
Beispiel 1:
Schreiben Sie eine Abfrage, um alle Datensätze eines Mitarbeiters abzurufen, dessen Gehalt über 50.000 liegt.
Abfrage:
mysql> SELECT * FROM employees WHERE Salary > 50000;
Die obige Abfrage zeigt alle Datensätze eines Mitarbeiters an, deren Gehalt mehr als 50.000 beträgt. Gehälter unter 50.000 werden gemäß den Bedingungen nicht angezeigt.
np bedeuten
Sie erhalten die folgende Ausgabe:
Gemäß der erwarteten Ausgabe werden nur die Datensätze angezeigt, bei denen das Gehalt eines Mitarbeiters mehr als 50.000 beträgt. In der Tabelle des Mitarbeiters gibt es sechs Datensätze, die die angegebene Bedingung erfüllen.
Beispiel 2:
Schreiben Sie eine Abfrage, um den Datensatz des Mitarbeiters zu aktualisieren, und legen Sie den aktualisierten Namen als „Harshada Sharma“ fest, wobei der Stadtname des Mitarbeiters Jaipur ist.
Abfrage:
mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur';
Die obige Abfrage aktualisiert den Namen des Mitarbeiters in „Harshada Sharma“, wobei die Stadt des Mitarbeiters Jaipur ist.
Um zu überprüfen, ob Datensätze aktualisiert werden oder nicht, führen wir eine Auswahlabfrage aus.
mysql> SELECT * FROM employees;
Es gibt nur einen Datensatz in der Mitarbeitertabelle, in dem die Stadt des Mitarbeiters „Jaipur“ ist. Die ID des Datensatzes ist 3, was die gegebene Bedingung erfüllt. Daher wird gemäß der gegebenen Bedingung der Name des Mitarbeiters mit der Mitarbeiter-ID 3 nun in „Harshada Sharma“ geändert.
Beispiel 3:
Schreiben Sie eine Abfrage, um den Datensatz eines Mitarbeiters zu löschen, dessen Beitrittsdatum „2013-12-12“ ist.
Abfrage:
mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12';
Die obige Abfrage löscht die Mitarbeiterdetails des Mitarbeiters, dessen Eintrittsdatum „2013-12-12“ ist.
Java-Eingabezeichenfolge
Um die Ergebnisse der obigen Abfrage zu überprüfen, führen wir die Auswahlabfrage aus.
mysql> SELECT *FROM employees;
Es gibt nur einen Datensatz in der Tabelle des Mitarbeiters, dessen Eintrittsdatum „2013-12-12“ ist. Die ID des Datensatzes ist 13, was die gegebene Bedingung erfüllt. Daher wird gemäß der gegebenen Bedingung nun der Mitarbeiter mit der Mitarbeiter-ID 13 aus der Mitarbeitertabelle gelöscht.
2. GRUPPE NACH KLAUSEL
Die Group By-Klausel wird verwendet, um ähnliche Arten von Datensätzen in den Gruppen in der Structured Query Language anzuordnen. Die Group by-Klausel in der Structured Query Language wird mit der Select-Anweisung verwendet. Die Group by-Klausel wird nach der where-Klausel in der SQL-Anweisung platziert. Die Group By-Klausel wird speziell mit der Aggregatfunktion verwendet, d. h. max (), min (), avg (), sum (), count (), um das Ergebnis basierend auf einer oder mehreren Spalten zu gruppieren.
Die Syntax der Group By-Klausel:
SELECT * FROM TABLENAME GROUP BY COLUMNNAME;
Die obige Syntax wählt alle Daten oder Datensätze aus der Tabelle aus, ordnet jedoch alle diese Daten oder Datensätze in den Gruppen basierend auf dem in der Abfrage angegebenen Spaltennamen an.
Die Syntax der Group By-Klausel mit Aggregatfunktionen:
SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME;
Lassen Sie uns die Group By-Klausel anhand von Beispielen verstehen.
Betrachten Sie die Mitarbeitertabelle mit den folgenden Daten:
E_ID | Name | Gehalt | Stadt | Bezeichnung | Beitrittsdatum | Alter |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50000 | Mumbai | Projektmanager | 20.06.2021 | 24 |
2 | Tejaswini Naik | 75000 | Delhi | Systemingenieur | 24.12.2019 | 23 |
3 | Anuja Sharma | 40000 | Jaipur | Manager | 15.08.2021 | 26 |
4 | Anushka Tripathi | 90000 | Mumbai | Software Tester | 13.06.2021 | 24 |
5 | Rucha Jagtap | 45000 | Bangalore | Projektmanager | 09.08.2020 | 23 |
6 | Rutuja Deshmukh | 60000 | Bangalore | Manager | 17.07.2019 | 26 |
7 | Baviskars Stimme | 55000 | Jaipur | Systemingenieur | 10.10.2021 | 24 |
8 | Da ist Scheich | 45000 | Pune | Softwareentwickler | 10.09.2020 | 26 |
9 | Swati Kumari | 50000 | Pune | Software Tester | 01.01.2021 | 25 |
10 | Mayuri Patel | 60000 | Mumbai | Projektmanager | 02.10.2020 | 24 |
elf | Simran Khanna | 45500 | Kolhapur | Personalwesen | 02.01.2019 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareentwickler | 10.09.2016 | 25 |
13 | Kiran Maheshwari | 50000 | Nashik | Personalwesen | 12.12.2013 | 23 |
14 | Tejal Jain | 40000 | Delhi | Projektmanager | 10.11.2017 | 25 |
fünfzehn | Mohini Shah | 38000 | Pune | Softwareentwickler | 05.03.2019 | zwanzig |
Beispiel 1:
Schreiben Sie eine Abfrage, um alle Datensätze der Tabelle „Mitarbeiter“ anzuzeigen, aber gruppieren Sie die Ergebnisse basierend auf der Altersspalte.
Abfrage:
mysql> SELECT * FROM employees GROUP BY Age;
Die obige Abfrage zeigt alle Datensätze der Mitarbeitertabelle an, jedoch gruppiert nach der Altersspalte.
Sie erhalten die folgende Ausgabe:
Beispiel 2:
Schreiben Sie eine Abfrage, um alle Datensätze der Mitarbeitertabelle gruppiert nach Bezeichnung und Gehalt anzuzeigen.
Abfrage:
mysql> SELECT * FROM employees GROUP BY Salary, Designation;
Die obige Abfrage zeigt alle Datensätze der Mitarbeitertabelle an, jedoch gruppiert nach der Gehalts- und Bezeichnungsspalte.
Sie erhalten die folgende Ausgabe:
Beispiele für eine Group By-Klausel mit Aggregatfunktionen
Beispiel 1:
Schreiben Sie eine Abfrage, um die Anzahl der Mitarbeiter aufzulisten, die an einer bestimmten Bezeichnung arbeiten, und gruppieren Sie die Ergebnisse nach der Bezeichnung des Mitarbeiters.
Java-String Compareto
Abfrage:
mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation;
Die obige Abfrage zeigt die Bezeichnung mit der entsprechenden Anzahl der Mitarbeiter an, die an dieser Bezeichnung arbeiten. Alle diese Ergebnisse werden nach der Bezeichnungsspalte gruppiert.
Sie erhalten die folgende Ausgabe:
Entsprechend der erwarteten Ausgabe wird die Bezeichnung mit der jeweiligen Mitarbeiterzahl angezeigt.
Beispiel 2:
Schreiben Sie eine Abfrage, um die Summe des Gehalts eines Mitarbeiters pro Stadt, gruppiert nach dem Alter des Mitarbeiters, anzuzeigen.
Abfrage:
mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City;
Die obige Abfrage berechnet zunächst die Summe der Gehälter in jeder Stadt und zeigt dann die Gehaltssumme mit dem jeweiligen Gehalt, jedoch gruppiert nach der Altersspalte, an.
Sie erhalten die folgende Ausgabe:
Entsprechend der erwarteten Ausgabe wird die Summe des Mitarbeitergehalts entsprechend der Stadt angezeigt, zu der der Mitarbeiter gehört. Wenn zwei Mitarbeiter derselben Stadt angehören, gehören sie zu einer Gruppe.
3. HAVING-KLAUSEL:
Wenn wir Bedingungen für die Tabellenspalte festlegen müssen, verwenden wir die WHERE-Klausel in SQL. Wenn wir jedoch zu diesem Zeitpunkt eine beliebige Bedingung für eine Spalte in der Group By-Klausel verwenden möchten, verwenden wir die HAVING-Klausel mit der Group By-Klausel für Spaltenbedingungen.
Syntax:
TABLENAME GROUP BY COLUMNNAME HAVING CONDITION;
Betrachten Sie die Mitarbeitertabelle mit den folgenden Daten:
E_ID | Name | Gehalt | Stadt | Bezeichnung | Beitrittsdatum | Alter |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50000 | Mumbai | Projektmanager | 20.06.2021 | 24 |
2 | Tejaswini Naik | 75000 | Delhi | Systemingenieur | 24.12.2019 | 23 |
3 | Anuja Sharma | 40000 | Jaipur | Manager | 15.08.2021 | 26 |
4 | Anushka Tripathi | 90000 | Mumbai | Software Tester | 13.06.2021 | 24 |
5 | Rucha Jagtap | 45000 | Bangalore | Projektmanager | 09.08.2020 | 23 |
6 | Rutuja Deshmukh | 60000 | Bangalore | Manager | 17.07.2019 | 26 |
7 | Baviskars Stimme | 55000 | Jaipur | Systemingenieur | 10.10.2021 | 24 |
8 | Da ist Scheich | 45000 | Pune | Softwareentwickler | 10.09.2020 | 26 |
9 | Swati Kumari | 50000 | Pune | Software Tester | 01.01.2021 | 25 |
10 | Mayuri Patel | 60000 | Mumbai | Projektmanager | 02.10.2020 | 24 |
elf | Simran Khanna | 45500 | Kolhapur | Personalwesen | 02.01.2019 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareentwickler | 10.09.2016 | 25 |
13 | Kiran Maheshwari | 50000 | Nashik | Personalwesen | 12.12.2013 | 23 |
14 | Tejal Jain | 40000 | Delhi | Projektmanager | 10.11.2017 | 25 |
fünfzehn | Mohini Shah | 38000 | Pune | Softwareentwickler | 05.03.2019 | zwanzig |
Beispiel 1:
Schreiben Sie eine Abfrage, um den Namen des Mitarbeiters, das Gehalt und die Stadt anzuzeigen, in der das Höchstgehalt des Mitarbeiters mehr als 40.000 beträgt, und gruppieren Sie die Ergebnisse nach Bezeichnung.
Abfrage:
mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000;
Sie erhalten die folgende Ausgabe:
Die obige Ausgabe zeigt, dass der Name, das Gehalt und der Ort eines Mitarbeiters, dessen Gehalt mehr als 40.000 beträgt, nach Bezeichnung gruppiert sind. (Mitarbeiter mit einer ähnlichen Bezeichnung werden einer Gruppe zugeordnet, Mitarbeiter mit einer anderen Bezeichnung separat.)
Javascript if-Anweisung
Beispiel 2:
Schreiben Sie eine Abfrage, um den Namen und die Bezeichnung von Mitarbeitern anzuzeigen, wenn die Summe des Gehalts eines Mitarbeiters mehr als 45.000 beträgt, und gruppieren Sie die Ergebnisse nach Stadt.
Abfrage:
mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000;
Sie erhalten die folgende Ausgabe:
Die obige Ausgabe zeigt den Namen, die Bezeichnung und das Gehalt eines Mitarbeiters. Die Summe der Gehälter ist größer als 45.000, gruppiert nach Stadt. (Mitarbeiter mit ähnlichen Städten werden in eine Gruppe eingeteilt und Mitarbeiter mit einer anderen Stadt, die nicht ähnlich sind, werden separat eingeordnet).
4. Reihenfolge nach Klausel
Wann immer wir etwas in SQL sortieren möchten, verwenden wir die ORDER BY-Klausel. Die ORDER BY-Klausel in SQL hilft uns, die Daten basierend auf der spezifischen Spalte einer Tabelle zu sortieren. Das bedeutet, dass alle Daten, die in der spezifischen Spalte gespeichert sind, für die wir die ORDER BY-Klausel ausführen, sortiert werden. Die entsprechenden Spaltenwerte werden in der Reihenfolge angezeigt, in der wir die Werte im vorherigen Schritt erhalten haben.
Wie wir alle wissen, bedeutet Sortieren entweder in aufsteigender oder absteigender Reihenfolge. Auf die gleiche Weise sortiert ORDER BY CLAUSE die Daten gemäß unserer Anforderung in aufsteigender oder absteigender Reihenfolge. Die Daten werden immer dann in aufsteigender Reihenfolge sortiert ASC-Schlüsselwort wird mit der ORDER by-Klausel verwendet und die DESC-Schlüsselwort sortiert die Datensätze in absteigender Reihenfolge.
Standardmäßig erfolgt die Sortierung in SQL mithilfe der ORDER BY-Klausel in ASCENDING-Reihenfolge, wenn wir die Sortierreihenfolge nicht angegeben haben.
Bevor wir uns dem Beispiel der ORDER BY-Klausel zum Sortieren der Datensätze zuwenden, werfen wir zunächst einen Blick auf die Syntax, damit wir das Beispiel leichter durchgehen können.
Syntax der ORDER BY-Klausel ohne asc- und desc-Schlüsselwort:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME;
Syntax der ORDER BY-Klausel zum Sortieren in aufsteigender Reihenfolge:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC;
Syntax der ORDER BY-Klausel zum Sortieren in absteigender Reihenfolge:
SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC;
Stellen Sie sich vor, wir haben eine Mitarbeitertabelle mit den folgenden Daten:
E_ID | Name | Gehalt | Stadt | Bezeichnung | Beitrittsdatum | Alter |
---|---|---|---|---|---|---|
1 | Sakshi Kumari | 50000 | Mumbai | Projektmanager | 20.06.2021 | 24 |
2 | Tejaswini Naik | 75000 | Delhi | Systemingenieur | 24.12.2019 | 23 |
3 | Anuja Sharma | 40000 | Jaipur | Manager | 15.08.2021 | 26 |
4 | Anushka Tripathi | 90000 | Mumbai | Software Tester | 13.06.2021 | 24 |
5 | Rucha Jagtap | 45000 | Bangalore | Projektmanager | 09.08.2020 | 23 |
6 | Rutuja Deshmukh | 60000 | Bangalore | Manager | 17.07.2019 | 26 |
7 | Baviskars Stimme | 55000 | Jaipur | Systemingenieur | 10.10.2021 | 24 |
8 | Da ist Scheich | 45000 | Pune | Softwareentwickler | 10.09.2020 | 26 |
9 | Swati Kumari | 50000 | Pune | Software Tester | 01.01.2021 | 25 |
10 | Mayuri Patel | 60000 | Mumbai | Projektmanager | 02.10.2020 | 24 |
elf | Simran Khanna | 45500 | Kolhapur | Personalwesen | 02.01.2019 | 26 |
12 | Shivani Wagh | 50500 | Delhi | Softwareentwickler | 10.09.2016 | 25 |
13 | Kiran Maheshwari | 50000 | Nashik | Personalwesen | 12.12.2013 | 23 |
14 | Tejal Jain | 40000 | Delhi | Projektmanager | 10.11.2017 | 25 |
fünfzehn | Mohini Shah | 38000 | Pune | Softwareentwickler | 05.03.2019 | zwanzig |
Beispiel 1:
Schreiben Sie eine Abfrage, um die Datensätze in der aufsteigenden Reihenfolge der Mitarbeiterbezeichnung aus der Mitarbeitertabelle zu sortieren.
Abfrage:
mysql> SELECT * FROM employees ORDER BY Designation;
Hier wird in einer SELECT-Abfrage eine ORDER BY-Klausel auf die Spalte „Bezeichnung“ angewendet, um die Datensätze zu sortieren. Wir haben jedoch nicht das Schlüsselwort ASC nach der ORDER BY-Klausel verwendet, um in aufsteigender Reihenfolge zu sortieren. Daher werden die Daten standardmäßig in aufsteigender Reihenfolge sortiert, wenn wir das Schlüsselwort „asc“ nicht angeben.
Sie erhalten die folgende Ausgabe:
Entsprechend der erwarteten Ausgabe werden die Datensätze in aufsteigender Reihenfolge der Mitarbeiterbezeichnung angezeigt.
Beispiel 2:
Schreiben Sie eine Abfrage, um den Namen und das Gehalt des Mitarbeiters in aufsteigender Reihenfolge des Gehalts des Mitarbeiters aus der Tabelle „Mitarbeiter“ anzuzeigen.
Abfrage:
mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC;
Hier wird in einer SELECT-Abfrage eine ORDER BY-Klausel auf die Spalte „Gehalt“ angewendet, um die Datensätze zu sortieren. Wir haben das Schlüsselwort ASC verwendet, um das Gehalt des Mitarbeiters in aufsteigender Reihenfolge zu sortieren.
Sie erhalten die folgende Ausgabe:
Name von
Alle Datensätze werden in aufsteigender Reihenfolge des Gehalts des Mitarbeiters angezeigt.
Beispiel 3:
Schreiben Sie eine Abfrage, um die Daten in absteigender Reihenfolge des in der Mitarbeitertabelle gespeicherten Mitarbeiternamens zu sortieren.
Abfrage:
mysql> SELECT * FROM employees ORDER BY Name DESC;
Hier haben wir die ORDER BY-Klausel mit der SELECT-Abfrage verwendet, die auf die Spalte „Name“ angewendet wurde, um die Daten zu sortieren. Wir haben das Schlüsselwort DESC nach der ORDER BY-Klausel verwendet, um Daten in absteigender Reihenfolge zu sortieren.
Sie erhalten die folgende Ausgabe:
Alle Datensätze werden in absteigender Reihenfolge des Mitarbeiternamens angezeigt.