Detaillierte Einführung in die gespeicherten MySQL-Funktionen

Detaillierte Einführung in die gespeicherten MySQL-Funktionen

1. Erstellen Sie eine gespeicherte Funktion

Syntaxformat:

CREATE FUNCTION Funktionsname (Parametername Parametertyp, ...) 
RETURNS Rückgabewerttyp BEGIN
	Funktionskörper#Der Funktionskörper muss eine RETURN-Anweisung enthalten END

veranschaulichen:

Parameterliste:

FUNCTION默認為IN參數

Die Anweisung nach RETURNS gibt den Typ der von der Funktion zurückgegebenen Daten an.

Die RETURNS-Klausel kann nur für FUNCTION angegeben werden und ist für Funktionen強制. Es wird verwendet, um den Rückgabetyp der Funktion anzugeben, und der Funktionskörper muss eine RETURN value enthalten.

Der Funktionskörper kann auch BEGIN…END verwenden, um den Anfang und das Ende des SQL-Codes anzuzeigen.

Wenn der Funktionskörper nur eine Anweisung enthält,可以省略BEGIN…END .

2. Aufrufen gespeicherter Funktionen

In MySQL ist die Verwendung gespeicherter Funktionen dieselbe wie die der internen MySQL-Funktionen. Mit anderen Worten: Benutzerdefinierte gespeicherte Funktionen sind von derselben Natur wie interne MySQL-Funktionen. Der Unterschied besteht darin, dass gespeicherte Funktionen用戶自己定義werden, während interne Funktionen開發者定義werden.

SELECT-Funktionsname (Argumentliste)

3. Gespeicherte Funktionen löschen

Grammatische Struktur:

DROP FUNCTION [IF EXISTS] gespeicherter Funktionsname

4. Gespeicherte Prozeduren anzeigen

1. Verwenden Sie die Anweisung SHOW CREATE, um die Erstellungsinformationen gespeicherter Prozeduren und Funktionen anzuzeigen

Grammatische Struktur:

SHOW CREATE FUNCTION gespeicherter Funktionsname

2. Verwenden Sie die Anweisung SHOW STATUS, um die Statusinformationen der gespeicherten Funktion anzuzeigen

Grammatische Struktur:

FUNKTIONSSTATUS ANZEIGEN [LIKE 'Muster']

Diese Anweisung gibt die Merkmale der Subroutine zurück, beispielsweise Datenbank, Name, Typ, Ersteller sowie Erstellungs- und Änderungsdatum.

[LIKE 'pattern'] entspricht dem Namen der gespeicherten Funktion, der weggelassen werden kann. Wenn es weggelassen wird, werden Informationen zu allen in der MySQL-Datenbank gespeicherten Funktionen aufgelistet.

Beispiel:

#Frage die gespeicherten Funktionen ab, deren Namen mit selectmysql> beginnen. SHOW FUNCTION STATUS LIKE 'SELECT%';
*************************** 1. Reihe ***************************
                  Datenbank: test_db
                Name: SelectAllData
                Typ: FUNCTION 
             Definierer: root@localhost
            Geändert: 2021-10-16 15:55:07
             Erstellt: 2021-10-16 15:55:07
       Sicherheitstyp: DEFINER
             Kommentar: 
Zeichensatzclient: utf8mb4
Sortierungsverbindung: utf8mb4_general_ci
  Datenbanksortierung: utf8mb4_general_ci

3. Zeigen Sie die Informationen zu gespeicherten Funktionen in der Tabelle information_schema.Routines an

Die Informationen zu gespeicherten Funktionen in MySQL werden in der Tabelle „Routinen“ unter der Datenbank „information_schema“ gespeichert. Sie können die Informationen der gespeicherten Funktionen abfragen, indem Sie die Datensätze in dieser Tabelle abfragen.

Grammatische Struktur:

SELECT * FROM information_schema.Routines
WHERE ROUTINE_NAME = 'Gespeicherter Funktionsname' [AND ROUTINE_TYPE = 'FUNCTION '];

Hinweis: Wenn in der MySQL-Datenbank存在存儲過程和函數名稱相同的情況, geben Sie am besten ROUTINE_TYPE an, um anzugeben, ob sich die Abfrage auf eine gespeicherte Prozedur oder eine Funktion bezieht.

5. Ändern Sie die Speicherfunktion

Das Ändern einer Speicherfunktion wirkt sich nicht auf die Funktionalität der Funktion aus, sondern ändert lediglich zugehörige Merkmale. Dies geschieht mit der ALTER-Anweisung.

ALTER FUNCTION gespeicherter Funktionsname;

6. Vergleich zwischen gespeicherten Funktionen und gespeicherten Prozeduren

Schlagwörter Aufrufsyntax Rückgabewert Anwendungsszenario
Gespeicherte Prozeduren VERFAHREN CALL gespeicherte Prozedur() Versteht sich als 0 oder mehr Wird im Allgemeinen für Updates verwendet
Gespeicherte Funktionen FUNKTION SELECT-Funktion () Kann nur einer sein Wird im Allgemeinen verwendet, wenn das Abfrageergebnis ein Wert ist und zurückgegeben wird

Darüber hinaus können gespeicherte Funktionen in Abfrageanweisungen verwendet werden, gespeicherte Prozeduren jedoch nicht . Im Gegenteil, gespeicherte Prozeduren sind leistungsfähiger und ermöglichen unter anderem die Durchführung von Tabellenoperationen (wie etwa Erstellen von Tabellen, Löschen von Tabellen usw.) und Transaktionsoperationen, die in gespeicherten Funktionen nicht verfügbar sind.

7. Stärken Sie die Übungen

#Voraussetzungen CREATE TABLE Mitarbeiter
ALS
WÄHLEN SIE * VON atguigudb.`Mitarbeiter`; 

TABELLE ERSTELLEN 
Abteilungen AS
WÄHLEN SIE * VON atguigudb.`Abteilungen`; 
#1. Erstellen Sie eine Funktion get_count(), um die Anzahl der Mitarbeiter im Unternehmen zurückzugeben. #mit Parametern und gibt SET GLOBAL log_bin_trust_function_creators = 1 zurück;

TRENNUNGSZEICHEN $
Funktion erstellen get_count()
RÜCKGABE INT
BEGINNEN
	Rückgabewert (Anzahl auswählen (*) von Mitarbeitern);
ENDE $
TRENNUNGSZEICHEN ;

Beachten:

Beim Erstellen einer gespeicherten you might want to use the less safe log_bin_trust_function_creators variable “. Dann überprüfte ich meine Notizen und fand heraus, dass eine Möglichkeit zur Lösung dieses Problems darin besteht, die SQL-Anweisung SET GLOBAL log_bin_trust_function_creators = 1; auszuführen.

#2. Erstellen Sie eine Funktion ename_salary(), um das Gehalt eines Mitarbeiters entsprechend seiner ID zurückzugeben. #Fragen Sie die Tabellenstruktur ab, um den Typ der zurückzugebenden Daten anzuzeigen. DESC Mitarbeiter;

TRENNUNGSZEICHEN $
Funktion erstellen ename_salary(id INT)
Gibt DOUBLE(8,2) zurück.
BEGINNEN
	RETURN (SELECT Gehalt FROM Mitarbeiter, WO Mitarbeiter-ID = ID);
ENDE $
TRENNUNGSZEICHEN ;

#Abfrageergebnisse SELECT ename_salary(100);

Die Liebe zum Schluss: Sie sollten lernen: 1. Die grundlegende Syntax zum Erstellen gespeicherter Funktionen verwenden; 2. Lernen Sie, gespeicherte Funktionen aufzurufen; 3. Kennen Sie die Ähnlichkeiten und Unterschiede zwischen gespeicherten Funktionen und gespeicherten Prozeduren

Dies ist das Ende dieses Artikels über die detaillierte Einführung in gespeicherte MySQL-Funktionen. Weitere relevante Inhalte zu gespeicherten MySQL-Funktionen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Verstehen Sie MySQL-gespeicherte Prozeduren und Funktionen gründlich
  • Analyse des Unterschieds zwischen gespeicherten MySQL-Funktionen und gespeicherten Prozeduren
  • Einführung in häufig verwendete Funktionen in der MySQL-Datenbank
  • MySQL fügt Daten im Batch über gespeicherte Funktionsprozeduren ein
  • Detaillierte Erklärung zum Erstellen gespeicherter Prozeduren und Funktionen in MySQL
  • Detaillierte Zusammenfassung häufig verwendeter MySQL-Funktionen
  • Umfassende Zusammenfassung der MySQL-Funktionen
  • So verwenden Sie MySQL-Funktionen

<<:  Lösungen für Probleme im Zusammenhang mit der Meldung von Softwarepaketabhängigkeiten während der Installation unter Linux

>>:  Was wir über absolute und relative CSS-Werte zu sagen haben

Artikel empfehlen

Detaillierte Erläuterung des CocosCreator-Projektstrukturmechanismus

Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...

Erläuterung des Arbeitsmechanismus von Namenode und SecondaryNameNode in Hadoop

1) Prozess 2) FSImage und Bearbeitungen Nodenode ...

Lösen Sie das Problem des IDEA-Konfigurations-Tomcat-Startfehlers

Beim Konfigurieren unterschiedlicher Servlet-Pfad...

Eine kurze Analyse der MySQL-Kardinalitätsstatistiken

1. Was ist die Kardinalität? Mit Kardinalität wir...

Verwandte Befehle zur vollständigen Deinstallation von Nginx unter Ubuntu 16.04

nginx Übersicht nginx ist ein kostenloser, quello...

Beispiel, wie nginx dynamische und statische Trennung implementiert

Inhaltsverzeichnis Stellen Sie nginx auf Server1 ...

Nginx definiert die Zugriffsmethode für Domänennamen

Ich erstelle derzeit Nginx, kann aber nicht über ...

So verhindern Sie, dass Website-Inhalte in Suchmaschinen aufgenommen werden

Normalerweise besteht das Ziel beim Erstellen ein...