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

MySQL-Einfügungsproblem bei JSON

MySQL 5.7.8 und höher unterstützt nun einen nativ...

So stellen Sie Redis in Docker bereit und starten es

Redis im Docker bereitstellen Installieren Sie zu...

Designtheorie: Die Grundlagen der Schriftgestaltung

<br />Worte sind das unvermeidliche Produkt ...

NULL und leere Zeichenfolge in MySQL

Ich bin vor kurzem mit MySQL in Berührung gekomme...

Schnelle Lösung zum Vergessen des MySQL8-Passworts

Vorwort Wenn wir das MySQL-Datenbankkennwort verg...

Implementierung der CSS3-Button-Randanimation

Erster Blick auf die Wirkung: html <a href=&qu...

Zusammenfassung gängiger Begriffe in CSS (Cascading Style Sheet)

Wenn Sie CSS verwenden, vergessen Sie nicht, DOCTY...

JavaScript-Canvas zum Laden von Bildern

In diesem Artikel wird der spezifische Code von J...

Lösung für den ineffektiven Rand von in HTML verschachtelten Divs

Hier ist eine Lösung für das Problem, dass der Ra...

js Canvas realisiert Slider-Verifizierung

In diesem Artikelbeispiel wird der spezifische Co...

Wie besteht man die W3C-Validierung?

Neben der Festlegung von Vorschriften für verschi...

Tutorial zur Installation von RabbitMQ mit Yum auf CentOS8

Geben Sie den Ordner /etc/yum.repos.d/ ein Erstel...