MySQL verfügt über gespeicherte Prozeduren. Gespeicherte Prozeduren sind eine Reihe von SQL-Anweisungen, die zur Ausführung bestimmter Funktionen entwickelt wurden. MySQL Version 5.0 unterstützte gespeicherte Prozeduren ab Version 5.0. Dies verbessert nicht nur die Verarbeitungsgeschwindigkeit der Datenbank, sondern auch die Flexibilität der Datenbankprogrammierung. Gespeicherte Prozeduren können zum Konvertieren von Daten, zum Migrieren von Daten und zum Erstellen von Berichten verwendet werden. Sie ähneln einer Programmiersprache. Nach erfolgreicher Ausführung können sie jederzeit aufgerufen werden, um bestimmte Funktionsvorgänge abzuschließen.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
MySQL verfügt über gespeicherte Prozeduren.
Eine gespeicherte Prozedur ist eine Reihe von SQL-Anweisungen, die dazu dienen, eine bestimmte Funktion auszuführen. Der Zweck der Verwendung gespeicherter Prozeduren besteht darin, allgemeine oder komplexe Arbeiten mit SQL-Anweisungen vorab zu schreiben und sie unter einem angegebenen Namen zu speichern. Diese Prozedur wird kompiliert und optimiert und auf dem Datenbankserver gespeichert, daher wird sie als gespeicherte Prozedur bezeichnet. Wenn die Datenbank in Zukunft denselben Dienst wie die definierte gespeicherte Prozedur bereitstellen muss, müssen Sie nur „CALL Stored Procedure Name“ aufrufen, um ihn automatisch abzuschließen.
SQL-Anweisungen, die häufig zum Betrieb von Datenbanken verwendet werden, müssen zuerst kompiliert und dann ausgeführt werden. Gespeicherte Prozeduren verfolgen einen anderen Ansatz zum Ausführen von SQL-Anweisungen.
Eine gespeicherte Prozedur ist eine programmierbare Funktion, die in der Datenbank erstellt und gespeichert wird. Sie besteht im Allgemeinen aus SQL-Anweisungen und einigen speziellen Kontrollstrukturen. Gespeicherte Prozeduren eignen sich besonders dann, wenn Sie dieselbe spezifische Funktion auf verschiedenen Anwendungen oder Plattformen ausführen möchten.
MySQL 5.0-Version unterstützte zuvor keine gespeicherten Prozeduren, was die Anwendung von MySQL stark einschränkte. MySQL unterstützt gespeicherte Prozeduren seit Version 5.0, was nicht nur die Verarbeitungsgeschwindigkeit der Datenbank verbessert, sondern auch die Flexibilität der Datenbankprogrammierung verbessert. Gespeicherte Prozeduren sind eine wichtige Funktion in der Datenbank. Gespeicherte Prozeduren können zum Konvertieren von Daten und zur Datenmigration verwendet werden , Das Erstellen von Berichten ähnelt einer Programmiersprache. Nach erfolgreicher Ausführung kann sie jederzeit aufgerufen werden, um bestimmte Funktionsvorgänge abzuschließen.
Die Verwendung gespeicherter Prozeduren kann nicht nur die Effizienz des Datenbankzugriffs verbessern, sondern auch die Sicherheit der Datenbanknutzung verbessern. Für den Aufrufer kapselt die gespeicherte Prozedur die SQL-Anweisung, und der Aufrufer muss den spezifischen Implementierungsprozess der logischen Funktion nicht berücksichtigen. Es ist nur ein einfacher Aufruf und kann aus Programmiersprachen wie Java und C# aufgerufen werden.Das Schreiben gespeicherter Prozeduren stellt etwas höhere Anforderungen an Entwickler, dies hat jedoch keinen Einfluss auf die allgemeine Verwendung gespeicherter Prozeduren, da gespeicherte Prozeduren die folgenden Vorteile haben:
1) Kapselung
Normalerweise sind mehr als eine Logik erforderlich Funktion zum Vervollständigen von SQL-Anweisungen und die Übergabe von Parametern zwischen den einzelnen Anweisungen ist relativ kompliziert. Gespeicherte Prozeduren können diese SQL-Anweisungen in einer unabhängigen Einheit einschließen, sodass die Außenwelt die komplexe SQL-Anweisung nicht sehen kann. Nur ein einfacher Anruf kann den Zweck erreichen. Und Datenbankexperten können die gespeicherte Prozedur jederzeit ändern, ohne dass sich dies auf den Quellcode der Anwendung auswirkt, die sie aufruft.
2) Es kann die Funktion und Flexibilität von SQL-Anweisungen verbessern.
Gespeicherte Prozeduren können mit Flusskontrollanweisungen geschrieben werden, die eine hohe Flexibilität aufweisen und komplexe Beurteilungen und komplexere Operationen durchführen können.
3) Kann den Netzwerkverkehr reduzieren
Da die gespeicherte Prozedur auf der Serverseite ausgeführt wird und eine hohe Ausführungsgeschwindigkeit aufweist, wird beim Aufruf der gespeicherten Prozedur auf dem Clientcomputer nur die Aufrufanweisung im Netzwerk übertragen kann die Netzwerklast reduzieren.
4) Hohe Leistung
Wenn die gespeicherte Prozedur erfolgreich kompiliert wurde, wird sie auf dem Datenbankserver gespeichert. Der Client kann sie in Zukunft direkt aufrufen, sodass alle SQL-Anweisungen vom Server ausgeführt werden, was zu einer Verbesserung führt Leistung. Es ist jedoch zu beachten, dass sich die übermäßige Verwendung gespeicherter Prozeduren tatsächlich auf die Systemleistung auswirkt, je mehr gespeicherte Prozeduren vorhanden sind.
5) Verbessern Sie die Datenbanksicherheit und Datenintegrität
Eine Möglichkeit, die Sicherheit gespeicherter Prozeduren zu verbessern, besteht darin, sie als Zwischenkomponenten zu verwenden. In den gespeicherten Prozeduren können Sie verwandte Vorgänge für bestimmte Tabellen und dann für die gespeicherten Prozeduren ausführen dienen als Schnittstellen zu externen Programmen. Auf diese Weise können externe Programme die Datenbanktabelle nicht direkt bedienen, sondern die entsprechende Tabelle nur über gespeicherte Prozeduren bedienen. Daher kann die Sicherheit bis zu einem gewissen Grad verbessert werden.
6) Daten unabhängig machen
Datenunabhängigkeit kann den Effekt der Entkopplung erzielen, das heißt, das Programm kann gespeicherte Prozeduren aufrufen, anstatt mehrere SQL-Anweisungen auszuführen. In diesem Fall isoliert die gespeicherte Prozedur die Daten vom Benutzer. Der Vorteil besteht darin, dass beim Aufrufen der Tabelle keine Änderung des Programms erforderlich ist. Der Datenbankadministrator muss lediglich die gespeicherte Prozedur neu schreiben .
Beispiel für eine gespeicherte MySQL-ProzedurWir zeigen Ihnen Schritt für Schritt, wie Sie mit CREATE PROCEDURE Ihre erste gespeicherte MySQL-Prozedur entwickeln. Darüber hinaus zeigen wir Ihnen, wie Sie gespeicherte Prozeduren aus SQL-Anweisungen aufrufen.
Schreiben der ersten gespeicherten MySQL-Prozedur
Wir entwickeln eine einfache gespeicherte Prozedur für GetAllProducts(), um Ihnen zu helfen, sich mit der Syntax vertraut zu machen. Die gespeicherte Prozedur GetAllProducts() wählt alle Produkte aus der Produkttabelle aus.
Starten Sie das MySQL-Client-Tool und geben Sie den folgenden Befehl ein:
DELIMITER // CREATE PROCEDURE GetAllProducts() BEGIN SELECT productCode, productName FROM products; END // DELIMITER ;
Führen Sie den Befehl aus:
mysql> DELIMITER // mysql> CREATE PROCEDURE GetAllProducts() -> BEGIN -> SELECT productCode, productName FROM products; -> END // Query OK, 0 rows affected (0.02 sec) mysql> DELIMITER ;
Lassen Sie uns die gespeicherte Prozedur genauer untersuchen:
Der erste Befehl ist DELIMITER //
und hat nichts mit der gespeicherten Prozedur zu tun Prozedursyntax. Die DELIMITER-Anweisung ändert das Standardtrennzeichen (Semikolon (;) in ein anderes Semikolon). In diesem Fall ändert sich das Trennzeichen von einem Semikolon (;) in einen doppelten Schrägstrich //. Warum müssen wir das Trennzeichen ändern? Weil wir die gespeicherte Prozedur als Ganzes an den Server übergeben möchten, anstatt dass das MySQL-Tool jede Anweisung auf einmal interpretiert. Nach dem Schlüsselwort END verwenden wir das Trennzeichen //, um das Ende der gespeicherten Prozedur anzuzeigen. Der letzte Befehl (DELIMITER; ) ändert das Trennzeichen wieder in ein Semikolon (;).
Wir verwenden die CREATE PROCEDURE-Anweisung, um eine neue gespeicherte Prozedur zu erstellen. Wir geben den Namen der gespeicherten Prozedur nach der CREATE PROCEDURE-Anweisung an. In diesem Fall lautet der Name der gespeicherten Prozedur GetAllProducts. Wir setzen Klammern hinter den Namen der gespeicherten Prozedur. Der Teil zwischen
BEGIN und END wird als Hauptteil der gespeicherten Prozedur bezeichnet. Sie platzieren deklarative SQL-Anweisungen im Hauptteil, um die Geschäftslogik zu verwalten. In dieser gespeicherten Prozedur verwenden wir eine einfache SELECT-Anweisung, um die Daten in der Produkttabelle abzufragen.
Gespeicherte Prozeduren anzeigen
Mit dem folgenden Befehl können wir überprüfen, welche gespeicherten Prozeduren sich in der angegebenen Datenbank befinden:
select name from mysql.proc where db='mysqldemo';
Ausführungsergebnisse:
Gespeicherte Prozeduren aufrufen
Gespeicherte Prozeduren aufrufen , verwenden Sie bitte den folgenden SQL-Befehl:
CALL stored_procedure_name();
Sie verwenden die CALL-Anweisung, um die gespeicherte Prozedur aufzurufen. Um beispielsweise die gespeicherte Prozedur GetAllProducts() aufzurufen, verwenden Sie die folgende Anweisung:
CALL GetAllProducts();
Wenn Sie die obige Anweisung ausführen erhält alle Produkte in der Produkttabelle.
[Verwandte Empfehlungen: MySQL-Video-Tutorial]
Das obige ist der detaillierte Inhalt vonVerfügt MySQL über gespeicherte Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!