Detaillierte Erläuterung der Definition und Verwendung von in MySQL gespeicherten Funktionen (benutzerdefinierten Funktionen)

Detaillierte Erläuterung der Definition und Verwendung von in MySQL gespeicherten Funktionen (benutzerdefinierten Funktionen)

Gespeicherte Funktionen

Was ist eine gespeicherte Funktion: Sie kapselt einen Teil des SQL-Codes, führt eine bestimmte Funktion aus und gibt das Ergebnis zurück.

Die Syntax einer gespeicherten Funktion lautet:

Funktion erstellen function([Funktionsparameter[,….]]) Gibt den Rückgabetyp zurück Begin

    Wenn(

      Rückgabe (zurückgegebene Daten)

    Anders 

      Rückgabe (zurückgegebene Daten)

    Ende wenn;

  Ende;

Beispiel: create function count_news(hits int) returns int

Im Gegensatz zu den Rückgabeparametern gespeicherter Prozeduren deklarieren gespeicherte Funktionen bei ihrer Definition nicht direkt, welche Variable der Rückgabeparameter ist. Stattdessen verwenden sie nur Returns, um den Datentyp des Rückgabeparameters zu deklarieren. Der Rückgabeparameter wird im Funktionskörper dargestellt, indem Return verwendet wird, um die zurückzugebende Datenvariable zurückzugeben. Bitte beachten Sie:
Gespeicherte Funktionen unterstützen nur Eingabeparameter und vor den Eingabeparametern steht kein IN oder INOUT.

Einschränkungen bei gespeicherten Funktionen

Flusssteuerungsanweisungen (IF, CASE, WHILE, LOOP, WHILE, REPEAT, LEAVE, ITERATE) sind ebenfalls zulässig.

Variablendeklarationen (DECLARE) und Zuweisungen (SET) sind zulässig.

Lässt bedingte Anweisungen zu.

Anweisungen zur Ausnahmebehandlung sind ebenfalls zulässig.

Beachten Sie jedoch, dass Funktionen Einschränkungen unterliegen: Sie können in einer Funktion nicht auf Tabellen zugreifen. Daher ist es nicht zulässig, die folgende Anweisung in einer Funktion zu verwenden.

ALTER 'CACHE INDEX' CALL COMMIT CREATE DELETE
DROP 'FLUSH PRIVILEGES' GRANT INSERT KILL
SPERREN OPTIMIEREN REPARIEREN ERSETZEN WIDERRUF
ROLLBACK SAVEPOINT 'AUSWAHL AUS Tabelle'
„SETZEN Sie die Systemvariable“ „SETZEN SIE DIE TRANSAKTION“
SHOW 'START TRANSACTION' TRUNCATE UPDATE

Der Unterschied zwischen gespeicherten Funktionen und gespeicherten Prozeduren

1. Eine gespeicherte Funktion hat genau einen Rückgabewert, während eine gespeicherte Prozedur keinen Rückgabewert haben kann.

2. Funktionen können nur Eingabeparameter und keine „in“ haben, während gespeicherte Prozeduren mehrere „in“, „out“ und „inout“-Parameter haben können.

3. Die Anweisungen in gespeicherten Prozeduren sind leistungsfähiger. Gespeicherte Prozeduren können eine sehr komplexe Geschäftslogik implementieren, während Funktionen viele Einschränkungen aufweisen. Beispielsweise können Sie in Funktionen keine Anweisungen wie Einfügen, Aktualisieren, Löschen, Erstellen usw. verwenden. Gespeicherte Funktionen führen nur Abfragearbeiten aus, können Eingabeparameter akzeptieren und ein Ergebnis zurückgeben, d. h. die von Funktionen implementierten Funktionen sind zielgerichteter.

4. Gespeicherte Prozeduren können gespeicherte Funktionen aufrufen. Funktionen können jedoch keine gespeicherten Prozeduren aufrufen.

5. Gespeicherte Prozeduren werden grundsätzlich als eigenständiger Teil (Aufruf) ausgeführt. Funktionen können als Teil einer Abfrageanweisung aufgerufen werden.

Beispiel 1:

Ausweis

Name

Frage

Telefon

1

Qin Yun

10102800

13500000

2

Unterwegs

10378

13600000

3

LÖWE

10000

13900000

Ausweis

Name

Computerzeit

Administrator

1

Qin Yun

2004-1-1

Li Dawei

2

Qin Yun

2005-1-1

Ma Huateng

3

Unterwegs

2005-1-1

Ma Huateng

4

Qin Yun

2005-1-1

Li Dawei

5

Unterwegs

2005-1-1

Li Dawei

Leistungszweck:

Holen Sie sich die Liste des gesamten Personals aus Tabelle 1 sowie die Häufigkeit der Computerverwendung und den Administrator aus Tabelle 2.

Liste der Benutzer Anzahl der Benutzer Administrator Qin Yun 3 Li Dawei, Ma Huateng, Li Dawei unterwegs 2 Ma Huateng, Li Dawei
Löwe 0

Das könnte Sie auch interessieren:
  • Beispiel für die benutzerdefinierte MySQL-Funktion CREATE FUNCTION
  • Ausführliche Erläuterung zum Erstellen benutzerdefinierter Funktionen und gespeicherter Prozeduren in MySQL
  • MySQL-Konvertierung chinesischer Zeichen in Pinyin, benutzerdefinierte Funktion und Anwendungsbeispiele (erster Buchstabe des ersten Wortes)
  • Eine kurze Diskussion über benutzerdefinierte MySQL-Funktionen
  • So verwenden Sie benutzerdefinierte Funktionen zum Extrahieren von Zahlen aus Zeichenfolgen in MySQL
  • Probleme beim Erstellen benutzerdefinierter Funktionen in MySQL
  • Einfache Anwendungsbeispiele für benutzerdefinierte MySQL-Funktionen
  • MySQL-Benutzerdefinierte Funktion zum Bestimmen, ob es sich um einen positiven Ganzzahl-Beispielcode handelt
  • Detaillierte Erläuterung der benutzerdefinierten MySQL-Funktionen und gespeicherten Prozeduren
  • MySQL verwendet benutzerdefinierte Funktionen, um die übergeordnete ID oder untergeordnete ID rekursiv abzufragen
  • Analyse des Prinzips und der Verwendung von MySQL-Benutzerdefinierten Funktionen

<<:  Anwendung und Implementierung des Datencache-Mechanismus für kleine Programme

>>:  So konfigurieren Sie NAS unter Windows Server 2019

Artikel empfehlen

So konfigurieren Sie die MySQL-Master-Slave-Synchronisierung in Ubuntu 16.04

Vorbereitung 1. Die Master- und Slave-Datenbankve...

So schreiben Sie hochwertigen JavaScript-Code

Inhaltsverzeichnis 1. Einfach zu lesender Code 1....

Swiper+echarts realisiert den Links- und Rechts-Scrolleffekt mehrerer Dashboards

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

MySQL führt Befehle für externe SQL-Skriptdateien aus

Inhaltsverzeichnis 1. Erstellen Sie eine SQL-Skri...

Verwendung von MySQL-Triggern

Trigger können dazu führen, dass vor oder nach de...

Detaillierte Analyse der HTML-Semantik und der zugehörigen Front-End-Frameworks

Über Semantik Die Semantik ist die Lehre von der ...

Probleme bei der Installation von TensorRT im Docker-Container

Deinstallieren Sie die installierte Version auf U...

js, um den Effekt eines Lichtschalters zu erzielen

In diesem Artikelbeispiel wird der spezifische Co...

Lösen Sie das Problem der Verwendung des Swiper-Plugins in Vue

Da ich dieses Plugin beim Schreiben einer Demo ve...

Beispielanweisungen für Indizes und Einschränkungen in MySQL

Fremdschlüssel Abfrage, bei welchen Tabellen der ...

JS-Dekorationsmuster und TypeScript-Dekoratoren

Inhaltsverzeichnis Einführung in das Decorator-Mu...