Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie verwende ich die CASE-Anweisung in MySQL?

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 werden

Beispielabfrage

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
&nbsp;&nbsp;WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
&nbsp;&nbsp;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.