Heim  >  Artikel  >  Datenbank  >  Was ist der Unterschied zwischen gespeicherten MySQL-Prozeduren und gespeicherten Funktionen?

Was ist der Unterschied zwischen gespeicherten MySQL-Prozeduren und gespeicherten Funktionen?

青灯夜游
青灯夜游Original
2021-12-13 17:57:016900Durchsuche

Unterschiede: 1. Gespeicherte Funktionen haben mehr Einschränkungen, während gespeicherte Prozeduren weniger Einschränkungen haben. 2. Die Implementierungsfunktionen gespeicherter Prozeduren sind komplexer, während die Implementierungsfunktionen gespeicherter Funktionen zielgerichteter sind Wert, während gespeicherte Prozeduren keinen Rückgabewert haben können; 4. Unterschiede in der Aufrufzeit; 5. Unterschiede in den Parametern.

Was ist der Unterschied zwischen gespeicherten MySQL-Prozeduren und gespeicherten Funktionen?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Gespeicherte Prozeduren und gespeicherte Funktionen ähneln Methoden in objektorientierten Programmiersprachen, die Code vereinfachen und die Wiederverwendbarkeit von Code verbessern können. In diesem Artikel wird hauptsächlich das Erstellen gespeicherter Prozeduren und gespeicherter Funktionen sowie die Verwendung, Änderung, Löschung und andere Vorgänge gespeicherter Prozeduren und Funktionen vorgestellt.

Gespeicherte Prozeduren und gespeicherte Funktionen

MySQL stellt gespeicherte Prozeduren und gespeicherte Funktionsmechanismen bereit. Bezeichnen wir gespeicherte Prozeduren und gespeicherte Funktionen vorübergehend als gespeicherte Prozeduren. Im Gegensatz zu allgemeinen SQL-Anweisungen, die zuerst kompiliert und dann sofort ausgeführt werden müssen, besteht ein gespeichertes Programm aus einer Reihe von SQL-Anweisungen, die bestimmte Funktionen ausführen sollen. Sie werden kompiliert und in der Datenbank gespeichert Programm und gibt die Parameter an (wenn die gespeicherte Prozedur nur ausgeführt wird, wenn sie mit Parametern aufgerufen wird).

Ein gespeichertes Programm ist eine Sammlung einer oder mehrerer SQL-Anweisungen und Steueranweisungen. Wir können es uns als MySQL-Batchdatei vorstellen. Natürlich ist seine Rolle nicht auf die Stapelverarbeitung beschränkt. Gespeicherte Prozeduren sind nützlich, wenn Sie möchten, dass ein Programm dieselbe Funktion über verschiedene Anwendungen oder Plattformen hinweg ausführt oder bestimmte Funktionen kapselt. Gespeicherte Prozeduren in einer Datenbank können als objektorientierter Ansatz der objektorientierten Programmierung angesehen werden, der die Kontrolle darüber ermöglicht, wie auf Daten zugegriffen wird.

Die Unterschiede zwischen gespeicherten Funktionen und gespeicherten Prozeduren sind wie folgt:

(1) Speicherfunktionen unterliegen vielen Einschränkungen. Beispielsweise können temporäre Tabellen nicht verwendet werden, es können nur Tabellenvariablen verwendet werden, während für gespeicherte Prozeduren weniger Einschränkungen gelten ; Implementierung gespeicherter Prozeduren Die Funktion ist komplexer und die Implementierungsfunktion der Funktion ist gezielter.

(2) Der Rückgabewert ist unterschiedlich. Gespeicherte Funktionen müssen einen Rückgabewert haben und können nur einen Ergebniswert zurückgeben; gespeicherte Prozeduren können keinen Rückgabewert haben, können aber Ergebnismengen (out, inout) zurückgeben.

(3) Unterschied beim Anrufen. Gespeicherte Funktionen sind in SQL eingebettet und können zum Speichern von Funktionsnamen (Variablenwerten) in SELECT verwendet werden; gespeicherte Prozeduren werden über die Call-Anweisung aufgerufen und rufen gespeicherte Prozedurnamen auf.

(4) Unterschiede in den Parametern. Die Parametertypen gespeicherter Funktionen ähneln IN-Parametern, und es gibt keine Parameter, die OUT und INOUT ähneln. Es gibt drei Parametertypen von gespeicherten Prozeduren: IN, Out und INOUT:

  a. Daten werden nur von außen nach innen zur internen Verwendung weitergeleitet (Wertübertragung), es kann ein numerischer Wert oder eine Variable sein

b. out: Nur innerhalb der Prozedur zulässig (ohne externe Daten), für externe Verwendung (Referenzübertragung: Externe Daten werden zuerst gelöscht, bevor die internen Daten eingegeben werden), es können nur Variablen verwendet werden

   c Intern und intern modifiziert können auch verwendet werden. Für den externen Gebrauch können bei der typischen Referenzübertragung nur Variablen übergeben werden.

【Verwandte Empfehlungen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen gespeicherten MySQL-Prozeduren und gespeicherten Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn