Bei einer enormen Datenmenge, die jeden Tag generiert wird, ist es wichtig, Daten auf der Grundlage einiger weniger Bedingungen abzurufen. In diesem Artikel über die CASE-Anweisung in MySQL werde ich diskutieren, wie diese Anweisung verwendet wird, um Daten zu einer einzelnen Bedingung oder mehreren Bedingungen abzurufen.
Die folgenden Themen werden in diesem Artikel behandelt:
- Einführung in SQL
- Was ist der Zweck von SQL?
- CASE in MySQL
- Syntax von CASE in MySQL
- Beispiel für CASE in MySQL
Was ist SQL?
SQL ist eine domänenspezifische Sprache, die häufig in der Programmierung verwendet wird. Es ist für die Verwaltung von Daten konzipiert, die in einem relationalen Datenbankverwaltungssystem (RDBMS) enthalten sind, oder für die Stream-Verarbeitung in einem relationalen Datenstrom-Verwaltungssystem. Im Allgemeinen ist SQL eine Standardsprache, die hilft, Daten in Datenbanken zu speichern, zu manipulieren und abzurufen.
Was ist der Zweck von SQL?
SQL wird grundsätzlich zur Kommunikation mit einer Datenbank verwendet. Laut ANSI (American National Standards Institute) gilt sie als Standardsprache für relationale Datenbankmanagementsysteme (RDBMS). Wir verwenden SQL-Anweisungen, um Aufgaben wie das Aktualisieren, Einfügen, Löschen oder Abrufen von Daten aus einer Datenbank auszuführen.
Was ist die CASE-Anweisung in MySQL?
CASE-Anweisung in MySQL ist eine Möglichkeit, die if/else-Logik zu handhaben. Es ist eine Art Steueranweisung, die die Zelle der Programmiersprachen bildet, da sie die Ausführung anderer Anweisungen steuern.
Die CASE-Anweisung durchläuft verschiedene Bedingungen und gibt Werte zurück, sobald die erste Bedingung erfüllt ist (wie eine IF-THEN-ELSE-Anweisung in Low-Level-Sprachen). Sobald eine Bedingung wahr ist, stoppt sie die Traversierung und gibt das Ergebnis zurück. Wenn keine der Bedingungen wahr ist, wird der Wert in der ELSE-Klausel zurückgegeben.
Wenn es keine ELSE-Klausel gibt und keine der Bedingungen wahr ist, wird einfach NULL zurückgegeben.
Syntax der CASE-Anweisung in MySQL
Grundlegende Syntax:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionx THEN resultx ELSE result END;
Es gibt zwei Möglichkeiten, um CASE-Switch-Anweisungen zu erreichen:
- Nehmt eine Variable namens case_value und vergleicht sie mit einer statement_list.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END;
- Erwägen Sie eine search_condition anstelle einer Variablengleichheit und führen Sie die statement_list entsprechend aus.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END;
Beispiel einer CASE-Anweisung in MySQL
Betrachten wir eine Tabelle:STUDENT
Schülertisch
Studenten-ID | Name | Abteilung | Geschlecht |
001 | Akash | CS | M |
002 | Bikram | Mech | M |
003 | Chandan | CS | M |
004 | Deepak | CS | M |
005 | Elicia | EC | F |
006 | Fernandes | Mech | F |
Beispiel: Stellen Sie sich ein Szenario vor, in dem Sie die Abteilungsnamen in ihre vollständige Form ändern müssen. Wenn der Abteilungsname CS lautet, sollte er in Informatik umgewandelt werden; Ebenso sollte Mech zu Mechanical.and EC zu Electronic and Communication.
umgewandelt werdenBeispielabfrage
CASE department_name WHEN 'CS' THEN UPDATE Student SET department='Computer Science'; WHEN 'EC' THEN UPDATE Student SET department='Electronics and Communication'; ELSE UPDATE Student SET department=’Mechanical'; END;
Ausgabe:
Die entsprechenden Abteilungsnamen werden wie folgt umbenannt:
Studenten-ID | Name | Abteilung | Geschlecht |
001 | Akash | Informatik | M |
002 | Bikram | Mechanisch | M |
003 | Chandan | Informatik | M |
004 | Deepak | Informatik | M |
005 | Elicia | Elektronik und Kommunikation | F |
006 | Fernandes | Mechanisch | F |
Beispiel: Stellen Sie sich ein Szenario vor, in dem Sie alle Felder auswählen müssen, die der Student-Tabelle entsprechen. Da die in das Feld „Geschlecht“ geschriebenen Werte Einzelzeichenwerte (M/F) sind, schreiben wir eine Abfrage, um „M“ in „Männlich“ und „F“ in „Weiblich“ zu ändern.
Beispielabfrage
SELECT Student ID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Student;
Ausgabe:
Studenten-ID | Name | Abteilung | Geschlecht |
001 | Akash | Informatik | Männlich |
002 | Bikram | Mechanisch | Männlich |
003 | Chandan | Informatik | Männlich |
004 | Deepak | Informatik | Männlich |
005 | Elicia | Elektronik und Kommunikation | Weiblich |
006 | Fernandes | Mechanisch | Weiblich |
CASE-Schalter in SQL – benutzerdefinierte Sortierung
Beispielabfrage
CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS SELECT StudentID, Name, Gender, Department FROM Student ORDER BY CASE WHEN @ColToSort='Department' THEN Department WHEN @ColToSort='Name' THEN Name WHEN @ColToSort='Gender' THEN Gender ElSE StudentID END;
Ausgabe:
Die Ausgabe wird nach dem bereitgestellten Feld sortiert.
Die obige Prozedur (Funktion) nimmt eine Variable vom Datentyp varchar als Argument und sortiert auf dieser Grundlage die Tupel in der Student-Tabelle. Darüber hinaus können wir auch CASE-Anweisungen verwenden, um Bedingungen zu vergleichen.
Beispiel: Stellen Sie sich eine Tabelle namens CONTACTS vor, die eine Kontakt-ID und eine Website-ID enthält. Gemäß diesen Angaben kann ein Benutzer über diese Links navigieren:„TechOnTheNet.com“ oder „CheckYourMath.com“.
Beispielabfrage
SELECT CASE WHEN contact_id < 1000 THEN 'TechOnTheNet.com' WHEN website_id = 2 THEN 'CheckYourMath.com' END FROM contacts;
Es muss inzwischen klar sein, dass beim Schreiben von Case-Anweisungen in MySQL ein wichtiger Faktor darin besteht, „sie in der richtigen Weise anzuordnen“. Denken Sie daran, dass die Bedingungen in der von Ihnen angegebenen Reihenfolge ausgewertet werden. Sobald eine Bedingung wahr wird, gibt die CASE-Anweisung das Ergebnis zurück und wertet die Bedingungen nicht weiter aus. Seien Sie also vorsichtig bei der Auswahl der Reihenfolge, in der Sie Ihre Bedingungen auflisten.
Wenn Sie mehr über MySQL erfahren und diese relationale Open-Source-Datenbank kennenlernen möchten, sehen Sie sich unsere MySQL-DBA-Zertifizierungsschulung an, die von einem Kursleiter geleitete Live-Schulungen und echte Lebensprojekterfahrung. Dieses Training wird Ihnen dabei helfen, MySQL gründlich zu verstehen und das Thema zu beherrschen.
Haben Sie eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieser „CASE-Anweisung in MySQL“ und wir werden uns bei Ihnen melden.