Die Vorteile gespeicherter Prozeduren sind:
– Sie können von verschiedenen externen Programmen aus aufgerufen werden, wenn die Struktur der Datenbank veröffentlicht werden muss.
– Sie können wiederverwendet werden , daher gewinnen wir Zeit, wenn wir programmiert und getestet werden.
Verwenden Sie gespeicherte MySQL-Prozeduren mit phpmyadmin
Wir werden mit der Erstellung und Abfrage gespeicherter Prozeduren mit dem phpmyadmin-Tool beginnen, aber jeder, der SQL-Abfragen von MYSQL 5.0 unterstützt, kann verwendet werden.
In diesem Fall übernehmen wir die Datenbank einer Auto- oder Fahrzeugagentur.
1) Wir geben phpmyadmin ein und von dort in die Datenbank
Es gibt zwei Typen von Engines, die Daten in MySQL verarbeiten
- MyISAM: Standardmodul, sehr schnell für Abfragen, bietet weder Datenintegrität noch Referenzschutz. Ideale Systeme mit vielen Abfragen
- InnoDB: Bietet zusätzlich zum Blockieren von Datensätzen referenziellen Schutz und Datenintegrität. Ideal, wenn Sie viele Informationen ständig einfügen, bearbeiten oder löschen möchten. Im Allgemeinen ist es für gespeicherte Prozeduren besser, InnoDB zu verwenden.
In der Registerkarte SQL erstellen wir unsere erste gespeicherte Prozedur, um die Fahrzeugtypen zu überprüfen. Schreiben Sie in das Textfeld von SQL.
CREATE PROCEDURE consult_type_home () —> Name der Prozedur
SELECT * FROM Fahrzeugtyp —> SQL, das aufgelöst werden soll
Wenn wir die SQL-Abfrage ausführen, erhalten wir eine Erfolgsmeldung, wenn die Prozedur erstellt wird.
Informationen zu den auf der Registerkarte SQL erstellten Prozeduren finden Sie im Befehl SHOW PROCEDURE STATUS, mit dem nicht alle gespeicherten Prozeduren angezeigt werden.
Nun wird gezeigt, wie die gespeicherte Prozedur mit dem CALL- Befehl procedure_name ausgeführt wird (jede Programmiersprache verfügt über eine eigene Bibliothek, um auf eine gespeicherte Prozedur zuzugreifen, sie sind jedoch alle ähnlich.
Hier sehen wir das Ergebnis der Ausführung der gespeicherten Prozedur CALL pa_tipo_vehiculo, haben das Ergebnis zurückgegeben und niemand sieht, welche Befehle ausgeführt wurden.
Im folgenden Beispiel werden die Fahrzeuge aufgelistet, aber nach Marke wäre das Verfahren:
VERFAHREN ERSTELLEN pa_vehiculos_por_marca (marca varchar (50))
SELECT * FROM
Fahrzeuge, Marken
WO vehiculos.marca = marcas.id
AND brands.brand = Marke
Dem Namen der Prozedur fügen wir eine Variable hinzu, um beispielsweise Fahrzeuge der Marke Honda suchen zu können
Um das Beispiel auszuführen, rufen wir die gespeicherte Prozedur in einer SQL-Registerkarte auf
CALL pa_vehiculos_por_marca (“Honda”)
CALL pa_vehiculos_por_marca (“Ford”)
Sie können die gespeicherten Prozeduren auch zum Einfügen von Aufgaben verwenden, z. B. zum Aufzeichnen von Daten von einem Client
PROZESS ERSTELLEN pa_cliente_insertar (
vname VARCHAR (64),
Fungus Nomen (64)
)
INSERT INTO client (vorname, nachname) VALUES (vname, nachname );
Um es zu benutzen, nennen wir es wie folgt
CALL pa_cliente_insertar ( ‘José’, ‘Gonzales’);
Eine andere Möglichkeit ist die Anzahl der Provinzen
VERFAHREN ERSTELLEN `pa_provinces_quantity` ()
WÄHLEN SIE COUNT (*) als Provinz AUS
Verwenden Sie DROP PROCEDURE procedure_name, um eine Prozedur zu entfernen
Aufrufe von Prozeduren aus verschiedenen Sprachen.
In PHP unter der Annahme, dass die Daten aus einem Formular stammen
$ mysqli = neues mysqli (“localhost”, “root”, “root”);
$ mysqli-> select_db (“automatische Agentur”);
$ mysqli-> query (“CALL pa_cliente_insertar (‘$ nombre’, ‘$ nachname’)”);
Jetzt führen wir die in Java gespeicherte Prozedur aus (der Code wurde abgeschnitten )
conn = ConnectionMySQL.connect (“127,0,0,1”, “root”, “*******”, “root”);
CallableStatement Procedure = conn.prepareCall (“{CALL pa_client_insertar (‘$ name’, ‘$ nachname’))}”);
Procedure.setString (“vname”, $ name);
Procedure.setString (“Nachname”, $ Nachname);
Procedure.execute ();
connM.commit ();
Auf diese Weise wird demonstriert, dass dieselben Verfahren in unterschiedlichen Umgebungen und Sprachen auf transparente Weise für den Benutzer verwendet wurden. Das Verfahrensthema ist umfangreich, aber jeder mit SQL-Kenntnissen kann mithilfe gespeicherter Prozeduren große Erfolge untersuchen und erzielen und so seine Projekte in Bezug auf Zeit und Datensicherheit optimieren.