MySQL ist ein sehr beliebtes Datenbankverwaltungssystem, das nicht nur die Standard-SQL-Syntax unterstützt, sondern auch einige erweiterte Funktionen wie gespeicherte Prozeduren und Funktionen bietet. In diesem Artikel werden prozedurale Funktionen in MySQL untersucht.
Was ist eine Prozessfunktion?
Eine prozedurale Funktion ist ein wiederverwendbarer Codeblock, der in einer MySQL-Datenbank definiert ist. Sie ähnelt einer Funktion, ist jedoch leistungsfähiger als eine Funktion. Prozedurale Funktionen können eine Reihe von SQL-Anweisungen ausführen und logische Operatoren und bedingte Anweisungen verwenden, um den Ablauf zu steuern. Prozedurale Funktionen können auch Parameter und Rückgabewerte empfangen und ihre Syntax unterscheidet sich geringfügig von der Standard-SQL-Syntax.
Die Syntax zum Definieren prozeduraler Funktionen in MySQL
Die Syntax zum Definieren prozeduraler Funktionen in MySQL ähnelt der Standard-SQL-Syntax, weist jedoch einige spezifische Schlüsselwörter und Einschränkungen auf.
Die Syntax zum Definieren gespeicherter Prozeduren:
CREATE PROCEDURE procedure_name ([parameter_list]) BEGIN -- SQL statements END;
Die Syntax zum Definieren gespeicherter Funktionen:
CREATE FUNCTION function_name ([parameter_list]) RETURNS return_type BEGIN -- SQL statements RETURN return_value; END;
In der obigen Syntax ist Prozedurname und <code>function_name
sind die Namen der Prozedur bzw. der Funktion. [parameter_list]
ist eine optionale Liste von Parametern, die beim Aufruf der Prozedur oder Funktion übergeben werden können. --SQL-Anweisungen
sind SQL-Anweisungen, die eine Prozedur oder Funktion ausführen muss. procedure_name
和 function_name
分别是过程和函数的名称。[parameter_list]
是可选的参数列表,它们可以在过程或函数被调用时传递进去。-- SQL statements
是过程或函数需要执行的 SQL 语句。
在存储函数的语法中,RETURN return_type
指定了函数的返回类型,return_value
是函数返回的值。
MySQL 中的过程函数示例
下面的存储过程示例接收一个 IN
参数和一个 OUT
参数,它将一个员工的年薪增加给定的百分比:
CREATE PROCEDURE raise_salary (IN emp_id INT, OUT new_salary DECIMAL(10, 2), IN raise_percent DECIMAL(4, 2)) BEGIN DECLARE current_salary DECIMAL(10, 2); SELECT salary INTO current_salary FROM employees WHERE id = emp_id; SET new_salary = current_salary + (current_salary * raise_percent); UPDATE employees SET salary = new_salary WHERE id = emp_id; END;
在上述示例中,DECLARE
用于声明局部变量,SELECT ... INTO
用于将查询结果保存到变量中,SET
用于赋值,UPDATE
用于更新数据。
下面的存储函数示例接收两个 IN
参数,它返回两个参数的和:
CREATE FUNCTION add (IN a INT, IN b INT) RETURNS INT BEGIN DECLARE result INT; SET result = a + b; RETURN result; END;
在上述示例中,DECLARE
用于声明局部变量,SET
用于赋值,RETURN
RETURN return_type
den Rückgabetyp der Funktion an und return_value
ist der von der Funktion zurückgegebene Wert. Prozedurales Funktionsbeispiel in MySQL Das folgende Beispiel einer gespeicherten Prozedur empfängt einen IN
-Parameter und einen OUT
-Parameter, It erhöht das Jahresgehalt eines Mitarbeiters um einen bestimmten Prozentsatz: DECLARE
verwendet, um lokale Variablen zu deklarieren, SELECT ... INTO
code> wird zum Speichern von Abfrageergebnissen in Variablen verwendet, SET
wird zum Zuweisen von Werten verwendet und UPDATE
wird zum Aktualisieren von Daten verwendet. IN
-Parameter und gibt die Summe der beiden Parameter zurück: DECLARE
wird zum Deklarieren lokaler Variablen verwendet, SET
wird zum Zuweisen von Werten verwendet und RETURN
wird zum Zurückgeben von Ergebnissen verwendet. Das obige ist der detaillierte Inhalt vonMySQL-Prozedurfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!