-
VERFAHREN ERSTELLEN
Erstellen Sie eine gespeicherte Prozedur, die eine Tabelle in einer MySQL-Datenbank speichert.
FUNKTION ERSTELLEN
Erstellen Sie eine benutzerdefinierte Funktion, insbesondere eine gespeicherte Prozedur, die Daten zurückgibt.
VERFAHREN ÄNDERN
Änderungen an einer vorab festgelegten gespeicherten Prozedur, die mit CREATE PROCEDURE erstellt wurde, wirken sich nicht auf zugehörige gespeicherte Prozeduren oder gespeicherte Funktionen aus. .
ÄNDERUNGSFUNKTION
Änderungen an einer vorab festgelegten gespeicherten Prozedur, die mit CREATE FUNCTION erstellt wurde, wirken sich nicht auf zugehörige gespeicherte Prozeduren oder gespeicherte Funktionen aus. .
DROP-VERFAHREN
Löschen Sie eine oder mehrere gespeicherte Prozeduren aus einer MySQL-Tabelle.
DROP-FUNKTION
Löschen Sie eine oder mehrere gespeicherte Funktionen aus einer MySQL-Tabelle.
ERSTELLUNGSVERFAHREN ANZEIGEN
Gibt den Text einer vorab angegebenen gespeicherten Prozedur zurück, die mit CREATE PROCEDURE erstellt wurde. Diese Deklaration ist eine MySQL-Erweiterung der SQL:2003-Spezifikation.
ZEIGEN SIE DIE ERSTELLUNGSFUNKTION
Gibt den Text einer vorab angegebenen gespeicherten Prozedur zurück, die mit CREATE FUNCTION erstellt wurde. Diese Deklaration ist eine MySQL-Erweiterung der SQL:2003-Spezifikation.
VERFAHRENSSTATUS ANZEIGEN
Gibt die Merkmale einer vorab angegebenen gespeicherten Prozedur zurück, einschließlich Name, Typ, Ersteller, Erstellungsdatum und Änderungsdatum. Diese Deklaration ist eine MySQL-Erweiterung der SQL:2003-Spezifikation.
FUNKTIONSSTATUS ANZEIGEN
Gibt die Merkmale einer vorab angegebenen gespeicherten Funktion zurück, einschließlich Name, Typ, Ersteller, Erstellungsdatum und Änderungsdatum. Diese Deklaration ist eine MySQL-Erweiterung der SQL:2003-Spezifikation.
ANRUF
Rufen Sie eine vorab festgelegte gespeicherte Prozedur auf, die mit CREATE PROCEDURE erstellt wurde.
ANFANG ... ENDE
Enthält eine Reihe mehrerer ausgeführter Anweisungen.
ERKLÄREN
Wird zum Angeben lokaler Variablen, Umgebungen, Prozessoren und Zeiger verwendet.
SATZ
Wird verwendet, um die Werte lokaler und globaler Servervariablen zu ändern.
WÄHLEN ... IN
Spalte zum Speichern von Anzeigevariablen.
OFFEN
Wird verwendet, um einen Zeiger zu öffnen.
BRINGEN
Verwenden Sie einen bestimmten Zeiger, um die nächste Spalte abzurufen.
SCHLIESSEN
Wird zum Schließen und Öffnen des Zeigers verwendet.
WENN
Eine if-then-else-end if-Anweisung.
FALL...WANN
Die Struktur einer Fallaussage
SCHLEIFE
Eine einfache Schleifenstruktur; sie kann mit der LEAVE-Anweisung verlassen werden.
VERLASSEN
Wird zum Beenden von IF-, CASE-, LOOP-, REPEAT- und WHILE-Anweisungen verwendet.
ITERIEREN
Wird verwendet, um den Zyklus neu zu starten.
WIEDERHOLEN
Am Ende wird die Schleife getestet.
WÄHREND
Eine Schleife, die am Anfang getestet wird.
RÜCKGABEN
Gibt den Wert einer gespeicherten Prozedur zurück.
MySQL 5.0 unterstützt gespeicherte Prozeduranweisungen.
1. Erstellen Sie eine gespeicherte Prozedur
1.Grundlegende Grammatik:
Erstellen Sie die Prozedur sp_name()
beginnen
.........
Ende
2. Parameterübergabe
2. Rufen Sie die gespeicherte Prozedur auf
1.Grundlegende Syntax: sp_name() aufrufen
Hinweis: Nach dem Namen der gespeicherten Prozedur müssen Klammern hinzugefügt werden, auch wenn für die gespeicherte Prozedur keine Parameter übergeben wurden
3. Löschen Sie gespeicherte Prozeduren
1.Grundlegende Grammatik:
Drop-Prozedur sp_name//
2. Vorsichtsmaßnahmen
(1) Sie können keine andere gespeicherte Prozedur in einer gespeicherten Prozedur löschen, sondern nur eine andere gespeicherte Prozedur aufrufen
4. Blöcke, Bedingungen, Schleifen
1. Blockdefinition, häufig verwendet
beginnen
...
Ende;
Sie können dem Block auch einen Alias geben, wie zum Beispiel:
Etikett: beginnen
...........
Endetikett;
Sie können Leave Label verwenden, um aus dem Block zu springen und den Code nach dem Block auszuführen.
2. Bedingungsanweisung
wenn Bedingung dann
Stellungnahme
anders
Stellungnahme
Ende, wenn;
3. Schleifenanweisung
(1).while-Schleife
[label:] WHILE-Ausdruck DO
Aussagen
ENDE WHILE [Beschriftung];
(2).loop-Schleife
[label:] SCHLEIFE
Aussagen
END LOOP [Beschriftung];
(3). Wiederholen bis zur Schleife
[label:] WIEDERHOLEN
Aussagen
UNTIL-Ausdruck
END REPEAT [Beschriftung];
5. Andere häufig verwendete Befehle
1. Verfahrensstatus anzeigen
Zeigt die grundlegenden Informationen aller gespeicherten Prozeduren in der Datenbank an, einschließlich der Datenbank, zu der sie gehört, des Namens der gespeicherten Prozedur, der Erstellungszeit usw.
2.Zeigen Sie die Erstellungsprozedur sp_name
Syntax zur Erstellung gespeicherter Prozeduren:
CREATE PROCEDURE Prozedurname ([Parameter[,...])
[SPRACHE SQL]
[ [NICHT] DETERMINISTISCH]
[{ENTHÄLT SQL|ÄNDERT SQL-DATEN|LEST SQL-DATEN|KEIN SQL}]
[SQL SECURITY {DEFINER|INVOKER}]
[COMMENT comment_string]
procedure_statements
Sie können SHOW PROCEDURE STATUS oder SHOW CREATE PROCEDURE verwenden, um Informationen zu gespeicherten Prozeduren anzuzeigen. Darüber hinaus enthält die Systemtabelle INFORMATION_SCHEMA.ROUTINES auch einige Informationen zu gespeicherten Prozeduren. Auf die gleiche Weise können auch Funktionen angezeigt werden (SHOW FUNCTION STATUS).
Erstellung von Funktionen
CREATE FUNCTION Funktionsname (Parameter[,...])
RETURNS-Datentyp
[SPRACHE SQL]
[ [NICHT] DETERMINISTISCH]
[ {ENTHÄLT SQL |. KEINE SQL-DATEN |.
[SQL SECURITY {DEFINER|INVOKER}]
[COMMENT comment_string]
Anweisungstext
Die Funktionen sind grundsätzlich dieselben wie gespeicherte Prozeduren. Die Hauptunterschiede sind:
1. Verwendung von RETURNS zur Angabe des Rückgabetyps
2. Die Funktion muss einen Wert zurückgeben und RETURN im Anweisungstext verwenden (Hinweis: Verwenden Sie RETURNS, um den Rückgabetyp anzugeben, und RETURN für den Rückgabewert).
3. Parameter unterscheiden nicht zwischen IN und OUT, alle sind vom Typ IN.
Beispiel:
FUNKTION ERSTELLEN cust_status(in_status CHAR(1))
Gibt VARCHAR(20) zurück
BEGIN DECLARE long_status VARCHAR(20);
IF in_status="O" THEN SET long_status="Overdue";
ELSEIF in_status="U" THEN SET long_status="Aktuell";
ELSEIF in_status="N" THEN SET long_status="new";
ENDE WENN;
RETURN(long_status);
ENDE;
Anruf:
SELECT cust_status('O');
auslösen
CREATE [DEFINER={user|CURRENT_USER}] TRIGGER Triggername
{VOR|NACH} {UPDATE|INSERT|DELETE}
ON Tabellenname
FÜR JEDE REIHE
trigger_statements
Bedeutung: Die Operation „trigger_statements“ der Anweisung wird ausgelöst, bevor (before) oder nach (after) die Aktualisierungs-, Einfüge- und Löschvorgänge für die Tabelle Tabellenname ausgeführt werden.
Beispiel:
mysql> CREATE TRIGGER account_balance_au
NACH DER AKTUALISIERUNG VON account_balance FÜR JEDE ZEILE
BEGINNEN
DECLARE dummy INT;
WENN NEW.balance<0 DANN
SET NEW.balance=NULL;
ENDE WENN;
ENDE
Der obige Auslöser bedeutet: Wenn nach der Aktualisierung der Tabelle „account_balance“ der aktualisierte Wertsaldo kleiner als 0 ist, ändern Sie ihn in NULL.
Hinweis: Wenn es OLD.balance ist, bedeutet dies den ursprünglichen Wert vor der Aktualisierung