Detailliertes Beispiel für die Verwendung der if-Anweisung in einer gespeicherten MySQL-Prozedur

Detailliertes Beispiel für die Verwendung der if-Anweisung in einer gespeicherten MySQL-Prozedur

Dieser Artikel veranschaulicht anhand eines Beispiels die Verwendung der if-Anweisung in einer gespeicherten MySQL-Prozedur. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Mit der IF-Anweisung in MySQL können wir eine Reihe von SQL-Anweisungen basierend auf einer bestimmten Bedingung oder einem Wertergebnis eines Ausdrucks ausführen. Daher müssen wir in MySQL einen Ausdruck bilden, der mit Text, Variablen, Operatoren und sogar Funktionen kombiniert werden kann. Ein Ausdruck kann einen von drei Werten zurückgeben: TRUE, FALSE oder NULL. Schauen wir uns die grammatische Struktur an:

WENN Ausdruck DANN
  aussagen;
ENDE, WENN;

Wenn der obige Ausdruck TRUE ergibt, werden die Anweisungen ausgeführt, andernfalls wird der Kontrollfluss mit der nächsten Anweisung nach END IF fortgesetzt. Schauen wir uns den Ausführungsprozess der IF-Anweisung an:

Schauen wir uns die Syntax der IF ELSE-Anweisung an:

WENN Ausdruck DANN
  aussagen;
ANDERS
  else-Anweisungen;
ENDE, WENN;

Schauen wir uns nun den Ausführungsprozess der IF ELSE-Anweisung an:

Wenn wir Anweisungen basierend auf mehreren Ausdrücken bedingt ausführen möchten, verwenden wir die Anweisung IF ELSE IF ELSE. Ihre Syntaxstruktur ist wie folgt:

WENN Ausdruck DANN
  aussagen;
ELSEIF elseif-Ausdruck THEN
  elseif-Anweisungen;
...
ANDERS
  else-Anweisungen;
ENDE, WENN;

Wenn der Ausdruck TRUE ergibt, werden die Anweisungen im IF-Zweig ausgeführt. Wenn der Ausdruck FALSE ergibt und elseif_expression TRUE ergibt, führt MySQL den elseif-Ausdruck aus, andernfalls führt es die else-Anweisungen im ELSE-Zweig aus. Werfen wir einen Blick auf den spezifischen Implementierungsprozess:

Wir verwenden dann die Anweisung IF ESLEIF ELSE und die gespeicherte Prozedur GetCustomerLevel(), um zwei Parameter zu akzeptieren: Kundennummer und Kundenebene. Zunächst muss die gespeicherte Prozedur GetCustomerLevel() das Kreditlimit aus der Kundentabelle abrufen. Anschließend bestimmt sie basierend auf dem Kreditlimit die Kundenstufe: PLATINUM, GOLD und SILVER. Der Parameter p_customerlevel speichert die Kundenebene und wird vom aufrufenden Programm verwendet. Schauen wir uns das spezifische SQL an:

TRENNUNGSZEICHEN $$
PROZEDUR ERSTELLEN GetCustomerLevel(
  in p_customerNumber int(11),
  aus p_customerLevel varchar(10))
BEGINNEN
  DECLARE Kreditlim doppelt;
  SELECT Kreditlimit INTO Kreditlimit
  VON Kunden
  WO Kundennummer = p_Kundennummer;
  WENN Kreditlimit > 50000 DANN
 SETZEN Sie p_customerLevel = "PLATINUM";
  SONST WENN (creditlim <= 50000 UND creditlim >= 10000) DANN
    SET p_customerLevel = 'GOLD';
  SONST WENN Kreditlimit < 10000 DANN
    SET p_customerLevel = 'SILBER';
  ENDE, WENN;
ENDE$$

Das Flussdiagramm der Logik zur Bestimmung der Kundenebene sieht wie folgt aus:

Okay, das ist alles zu diesem Teilen.

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „Kenntnisse zu gespeicherten MySQL-Prozeduren“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „Kenntnisse zu MySQL-Protokollvorgängen“, „Zusammenfassung der Kenntnisse zu MySQL-Transaktionsvorgängen“ und „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung zum Erstellen, Aufrufen und Verwalten von MySQL-gespeicherten Prozeduren
  • Einführung in Abfragebefehle für gespeicherte MySQL-Prozeduren
  • Beispiele und Zusammenfassung der In-, Out- und Inout-Parameter von gespeicherten MySQL-Prozeduren
  • Detaillierte Schritte zum Ändern gespeicherter MySQL-Prozeduren
  • Verwenden einer Cursorschleife zum Lesen temporärer Tabellen in gespeicherten MySQL-Prozeduren
  • Problem mit Berechtigungen zum Ändern gespeicherter Prozeduren in MySQL
  • Ausführliche Erläuterung der gespeicherten MySQL-Prozeduren (in, out, inout)
  • So erstellen Sie eine monatliche Tabelle in einer gespeicherten MySQL-Prozedur
  • Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren
  • Analyse der Vor- und Nachteile von gespeicherten MySQL-Prozeduren

<<:  jQuery realisiert den Bildverfolgungseffekt

>>:  So öffnen Sie Ports zur Außenwelt in Alibaba Cloud Centos7.X

Artikel empfehlen

MySQL-Vorkompilierung in einem Artikel verstehen

1. Vorteile der Vorkompilierung Wir haben alle di...

Reiner CSS3-Code zur Implementierung einer laufenden Uhr

Wirkung der OperationCode-Implementierung html &l...

So implementieren Sie Polygonbrechung in Echtzeit mit Threejs

Inhaltsverzeichnis Vorwort Schritt 1: Aufbau und ...

Verständnis und Lösungen für 1px-Linien in der mobilen Entwicklung

Gründe, warum die 1px-Linie dicker wird Wenn wir ...

Was soll ich tun, wenn ich die Quelldatei einer Webseite nicht anzeigen kann?

F: Wenn Sie Outlook oder IE verwenden, wird beim ...

Vue implementiert einen beweglichen schwebenden Button

In diesem Artikelbeispiel wird der spezifische Co...

CentOS7-Installations-Tutorial für Zabbix 4.0 (Abbildung und Text)

Deaktivieren Sie SeLinux setenforce 0 Dauerhaft g...

Implementierungscode für mehrzeilige Textkomponenten der Vue-Faltanzeige

Faltdisplay mit mehrzeiligem Textbaustein Falten ...

SSM VUE Axios Detaillierte Erklärung

Inhaltsverzeichnis Wie wird das SQL-Protokoll ang...

JavaScript implementiert eine Box, die der Mausbewegung folgt

In diesem Artikel wird der spezifische JavaScript...

Memcached-Methode zum Erstellen eines Cache-Servers

Vorwort Viele Webanwendungen speichern Daten in e...

Eine kurze Analyse von MySQL-Sperren und -Transaktionen

MySQL selbst wurde auf Basis des Dateisystems ent...