Detaillierte Erläuterung der Konzepte, Prinzipien und allgemeinen Verwendung von gespeicherten MySQL-Prozeduren

Detaillierte Erläuterung der Konzepte, Prinzipien und allgemeinen Verwendung von gespeicherten MySQL-Prozeduren

Dieser Artikel erläutert anhand von Beispielen die Konzepte, Prinzipien und allgemeinen Verwendungszwecke gespeicherter MySQL-Prozeduren. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

1. Das Konzept der gespeicherten Prozedur

In einigen Sprachen, wie beispielsweise Pascal, gibt es ein Konzept namens „Prozedur“ und „Funktion“. In PHP gibt es keine Prozeduren, sondern nur Funktionen.

Prozedur: kapselt mehrere Anweisungen. Wenn diese gekapselten Körper aufgerufen werden, führen sie Funktionen aus: eine „Prozedur“ mit einem Rückgabewert
Zusammenfassung: Eine Prozedur ist eine Funktion, die keinen Rückgabewert hat

In MySQL:

Wir kapseln mehrere SQL-Anweisungen und geben ihnen einen Namen - Prozedur. Wir speichern diese Prozedur in der Datenbank - gespeicherte Prozedur

2. Erstellen Sie eine gespeicherte Prozedur

Prozedur erstellen Prozedurname()
beginnen
  //--SQL-Anweisung Ende$

3. Vorhandene gespeicherte Prozeduren anzeigen

Vorgangsstatus anzeigen

4. Löschen Sie die gespeicherte Prozedur

Prozedur Prozedurname löschen;

5. Aufrufen einer gespeicherten Prozedur

rufe Prozedurname() auf;

6. Die erste gespeicherte Prozedur

Hinweis: Ich habe hier die MySQL-Endkennung in $ geändert. Wenn Sie wissen möchten, wie Sie sie auf $ setzen, lesen Sie bitte meinen anderen Artikel: MySQL-Trigger.

Prozedur p1() erstellen
beginnen
  wähle 2+3;
Ende$

Anruf:

rufe p1() auf;

Ergebnisse anzeigen:

這里寫圖片描述

7. Einführung von Variablen

Gespeicherte Prozeduren sind programmierbar, d. h. Sie können Variablen, Ausdrücke und Kontrollstrukturen verwenden, um komplexe Funktionen auszuführen. In einer gespeicherten Prozedur deklarieren Sie Variablen mit declare:

Variablennamen deklarieren Variablentyp [Standard Standardwert]

verwenden:

erstelle Prozedur p2()
beginnen
  Deklariere das Alter als Standardwert 18;
  Deklarieren Sie die Höhe als Int-Standardwert 180.
  select concat('Alter:',Alter,'Größe:',Größe);
Ende$

Ergebnisse anzeigen:

這里寫圖片描述

8. Ausdrücke einführen

In einer gespeicherten Prozedur können Variablen für gültige Operationen in SQL-Anweisungen verwendet werden, z. B. +-*/. Das Format der Variablenzuweisung ist:

set 變量名:= expression

verwenden:

Prozedur p3() erstellen
beginnen
  Deklariere das Alter als Int-Standard: 18;
  Alter festlegen: = Alter + 20;
  select concat('Alter in 20 Jahren:', Alter);
Ende$

Ergebnisse anzeigen:

這里寫圖片描述

9. Auswahlkontrollstruktur einführen

Format:

wenn Bedingung dann
  Stellungnahme
sonstwenn
  Stellungnahme
anders
  Stellungnahme
Ende wenn;

verwenden:

Prozedur p4() erstellen
beginnen
  Deklariere das Alter als Int-Standard: 18;
  wenn Alter >= 18 dann
  Wählen Sie „Alter“;
  anders
  Wählen Sie „Minderjährige“;
  Ende wenn;
Ende$

Ergebnisse anzeigen:

這里寫圖片描述

10. Übergeben von Parametern an gespeicherte Prozeduren

In den Klammern der Stored Procedure-Definition können Sie Parameter deklarieren. Die Syntax lautet:

[in/out/inout] 參數名參數類型

verwenden:

Erstellen Sie die Prozedur p5 (Breite int, Höhe int).
beginnen
  select concat('Ihr Bereich ist:',Breite * Höhe) als Bereich;
  wenn Breite > Höhe dann
    wählen Sie „Sie sind dicker“;
  sonstwenn Breite < Höhe dann
    wählen Sie „Sie sind dünner“;
  anders
  wählen Sie „Sie vergleichen“;
  Ende wenn;
Ende$

Ergebnisse anzeigen:

這里寫圖片描述

11. Verwenden Sie die While-Schleifenstruktur

Anforderung: Addiere von 1 bis 100

verwenden:

Prozedur p6() erstellen
beginnen
  Deklarieren Sie den Gesamtint-Standardwert 0.
  Deklarieren Sie num int als Standard 0;
  während num <= 100
    Gesamtsumme festlegen := Gesamtsumme + Zahl;
    setze Num := Num + 1;
  Ende während;
  Gesamtsumme auswählen;
Ende$

Ergebnisse anzeigen:

這里寫圖片描述

12. Eingabe- und Ausgabetypen von gespeicherten Prozedurparametern

Es gibt drei Haupttypen von Anforderungen: in, out und inout: von 1 bis N
Die Eingabedaten sind der von uns angegebene Wert und die Ausgabedaten sind der von uns angegebene Variablenname, der zum Laden des Ausgabevariablenwerts verwendet wird.

(1) in Typ, in ist der Eingabezeilenparameter, der unsere Eingabe akzeptieren kann

Prozedur p7 erstellen (in n int)
beginnen
  Deklarieren Sie den Gesamtint-Standardwert 0.
  Deklarieren Sie num int als Standard 0;
  während num <= n tun
    Gesamtsumme festlegen := Gesamtsumme + Zahl;
    setze Num := Num + 1;
  Ende während;
  Gesamtsumme auswählen;
Ende$

Anruf:

rufe p7(100) auf;

Ausgabe:

這里寫圖片描述

(2) Parameter des Typs out

Erstellen Sie die Prozedur p8 (in n int, out total int).
beginnen
  Deklarieren Sie num int als Standard 0;
  Gesamtsumme festlegen := 0;
  während num <= n tun
    Gesamtsumme festlegen := Gesamtsumme + Zahl;
    setze Num := Num + 1;
  Ende während;
Ende$

Anruf:

call p8(100,@total); --100 ist ein Eingabeparameter und @total ist eine Ausgabevariable select @total; --output @total variable

Ausgabe:

這里寫圖片描述

(3) Inout-Typparameter

Prozedur p9 erstellen (inout age int)
beginnen
  Alter festlegen := Alter+20;
Ende$

Anruf:

setze @age = 18; --Setze die Variable @age auf 18
call p9(@age); --Rufen Sie die gespeicherte Prozedur p9 auf, die Variable @age ist der eigentliche Parameter select @age; --Zeigen Sie die Variable @age an

Ausgabe:

這里寫圖片描述

Der tatsächliche Parameter einer Variable vom Typ Inout ist ebenfalls ein Variablenname. Diese Variable dient in der gespeicherten Prozedur sowohl als Eingabevariable als auch als Ausgabevariable.

13. Verwendung der Fallstruktur

verwenden:

Prozedur p10() erstellen
beginnen
  Deklarieren Sie pos int als Standard 0;
  setze Position := floor(5*rand());
  Fallpos
  wenn 1, dann wähle „immer noch fliegend“;
  wenn 2, dann wähle „Ins Meer fallen“;
  wenn 3, dann wähle „an Land fallen“;
  andernfalls wählen Sie „Ich weiß nicht wo“;
  Ende des Falls;
Ende$

Ausgabe:

這里寫圖片描述

14. Wiederholungsschleifenstruktur

Format:

[begin_label:] WIEDERHOLEN
  Anweisungsliste
BIS Suchbedingung
ENDE WIEDERHOLUNG [end_label]

Anforderung: Addiere von 1 bis 100

Prozedur p11() erstellen
beginnen
  Deklarieren Sie den Gesamtint-Standardwert 0.
  Deklarieren Sie num int als Standard 0;
  r:wiederholen
    Gesamtsumme festlegen:= Gesamtsumme + Zahl;
  setze Num:=Num + 1;
  bis Zahl > 100
  Ende der Wiederholung r;
  Gesamtsumme auswählen;
Ende$

Ausgabe:

這里寫圖片描述

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:
  • Definition und Zuweisung von Variablen in gespeicherten MySQL-Prozeduren
  • Einführung in die Verwendung der Cursorschleife für gespeicherte Prozeduren in MySQL
  • Detaillierte Erläuterung der Anwendungsbeispiele für gespeicherte MySQL-Prozeduren
  • Beispiel für eine gespeicherte MySQL-Prozedur (einschließlich Transaktionen, Ausgabeparameter, verschachtelte Aufrufe)
  • Detaillierte Erläuterung der gespeicherten Prozeduren und Funktionen von MySql
  • MySQL-Abfragedatenbank - gespeicherte Prozeduren und Funktionsanweisungen
  • Einführung in MySQL-Import- und -Exportdatenbanken, Funktionen und gespeicherte Prozeduren
  • Beispiel einer gespeicherten MySQL-Prozedur mit Eingabe- und Ausgabeparametern
  • So führen Sie dynamische SQL-Anweisungen in gespeicherten MySQL-Prozeduren aus
  • Der Unterschied zwischen gespeicherten MySQL-Prozeduren und -Funktionen
  • Einfaches Schreiben von gespeicherten MySQL-Prozeduren und -Funktionen
  • Beispiel für das Verlassen und Fortsetzen der Cursorschleife in gespeicherten MySQL-Prozeduren

<<:  Entwurf und Implementierung einer kaskadierenden Dropdown-Box in Vue

>>:  So aktivieren Sie die JMX-Überwachung über Tomcat

Artikel empfehlen

JavaScript implementiert eine bidirektionale verknüpfte Listenprozessanalyse

Inhaltsverzeichnis 1. Was ist eine doppelt verknü...

Zusammenfassung der Verwendung von Linux-SFTP-Befehlen

sftp ist die Abkürzung für Secure File Transfer P...

Beispiel zum Aktivieren langsamer Abfragen in MySQL

Vorwort Das langsame Abfrageprotokoll ist eine se...

Detaillierte Erläuterung des MySQL-Download- und Installationsprozesses

1: MySql herunterladen Offizielle Download-Adress...

Beispielcode zur Implementierung eines 3D-Rotationseffekts mit reinem CSS

Verwenden Sie hauptsächlich die Eigenschaften „pr...

JavaScript-Objekte (Details)

Inhaltsverzeichnis JavaScript-Objekte 1. Definiti...