Heim >Datenbank >MySQL-Tutorial >Gespeicherte Funktion der gespeicherten MySQL-Prozedur
MySQL ist ein beliebtes relationales Datenbankverwaltungssystem, das die Erstellung und Verwendung von Datenbankobjekten wie gespeicherten Prozeduren und gespeicherten Funktionen unterstützt. In diesem Artikel befassen wir uns mit den Konzepten, Verwendungen, Syntax und Beispielen gespeicherter MySQL-Prozeduren und gespeicherter Funktionen.
1. Was sind gespeicherte Prozeduren und gespeicherte Funktionen?
Gespeicherte Prozeduren und gespeicherte Funktionen sind zwei Arten von Datenbankobjekten in MySQL. Sie können alle auf der MySQL-Serverseite erstellt und von anderen Clientprogrammen aufgerufen und ausgeführt werden. Gemeinsam ist ihnen, dass sie eine Reihe von SQL-Anweisungen kapseln und einige komplexe Datenbankoperationen oder Geschäftslogik implementieren können.
Eine gespeicherte Prozedur ist eine Sammlung vordefinierter SQL-Anweisungen, ähnlich wie Unterroutinen oder Funktionen in anderen Programmiersprachen. Sie werden als einzelne SQL-Anweisung geschrieben, auf dem Server gespeichert und können bei Bedarf aufgerufen werden. Gespeicherte Prozeduren können verwendet werden, um bestimmte Geschäftsanforderungen zu implementieren, z. B. Stapelverarbeitung von Daten, Ausführung von Transaktionen, schnelle Abfragen usw. Gespeicherte Prozeduren können bei der Ausführung Parameter akzeptieren und nach der Ausführung auch Ergebnisse zurückgeben.
Eine gespeicherte Funktion ist eine Prozedur, die in einer SQL-Abfrage aufgerufen werden kann, Eingabeparameter akzeptiert und einen einzelnen Wert zurückgibt. Ähnlich wie gespeicherte Prozeduren sind auch gespeicherte Funktionen eine Sammlung von SQL-Anweisungen. Gespeicherte Funktionen werden normalerweise verwendet, um Werte zu berechnen, umzuwandeln oder zu manipulieren und die Ergebnisse an den Aufrufer zurückzugeben. Im Gegensatz zu gespeicherten Prozeduren können gespeicherte Funktionen nur einen einzelnen Wert und keine Ergebnismenge zurückgeben. Gespeicherte Funktionen werden häufig in Abfragen und Berichten verwendet.
2. Vorteile gespeicherter Prozeduren und gespeicherter Funktionen
3. Gespeicherte Prozeduren erstellen und verwenden.
Die Syntax zum Erstellen gespeicherter Prozeduren lautet wie folgt:
CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter datatype [, …]) BEGIN SQL statements; END;
CREATE PROCEDURE add_amount(IN amt INT, IN cust_id INT) BEGIN UPDATE customers SET balance = balance + amt WHERE id = cust_id; END;Gespeicherte Prozedur aufrufen:
CALL procedure_name([parameter_value]);
Der folgende Code ruft beispielsweise die gerade erstellte gespeicherte Prozedur add_amount() auf:
CALL add_amount(100, 1);
Der obige Code wird Erhöhen Sie den Kontostand des Kunden mit der ID 1 in der Kundentabelle Yuan um 100.
4. Gespeicherte Funktionen erstellen und verwenden
Eine gespeicherte Funktion erstellen:CREATE FUNCTION function_name ([parameter datatype [, …]]) RETURNS datatype BEGIN SQL statements; RETURN return_value; END;Funktionsname: der Name der gespeicherten Funktion
CREATE FUNCTION average (a INT, b INT) RETURNS INT BEGIN DECLARE result INT; SET result = (a + b) / 2; RETURN result; END;Rufen Sie die gespeicherte Funktion auf:
SELECT function_name([parameter_value]);
Der folgende Code ruft beispielsweise die gerade erstellte gespeicherte Funktion Average() auf:
SELECT average(10, 20);
Der obige Code gibt 15 zurück, was das Ergebnis von (10+20)/2 ist. 5. Beispiele für gespeicherte Prozeduren und gespeicherte Funktionen
Die folgende gespeicherte Funktion gibt die Anzahl der Tage zwischen zwei Daten zurück:
CREATE PROCEDURE calc_avg_age() BEGIN DECLARE avg_age FLOAT; SELECT AVG(YEAR(CURDATE()) - YEAR(birth_date)) INTO avg_age FROM customers; INSERT INTO statistics (name, value) VALUES ('avg_age', avg_age); END;
Jetzt möchte ich die Anzahl der Tage zwischen Weihnachten und Neujahr 2022 wissen. Wir können den folgenden Code verwenden, um die oben gespeicherte Funktion aufzurufen:
CREATE FUNCTION days_between (date1 DATE, date2 DATE) RETURNS INT BEGIN DECLARE num_days INT; SET num_days = DATEDIFF(date2, date1); RETURN num_days; END;
Bisher haben wir die Konzepte, Syntax und Beispiele von gespeicherten MySQL-Prozeduren und gespeicherten Funktionen verstanden. Diese Objekte können uns helfen, SQL-Code besser zu organisieren und die Leistung und Wartbarkeit der Datenbank zu verbessern. In praktischen Anwendungen werden gespeicherte Prozeduren und gespeicherte Funktionen häufig in Data Warehouses, Business Intelligence, Anwendungen und anderen Bereichen verwendet. Achten Sie jedoch darauf, sie nicht zu häufig zu verwenden, da dies die Lesbarkeit und Wartbarkeit Ihres Codes beeinträchtigen kann.
Das obige ist der detaillierte Inhalt vonGespeicherte Funktion der gespeicherten MySQL-Prozedur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!