Erstellen Sie eine Funktion in MySQL

Mehvish Ashiq 16 Februar 2024
Erstellen Sie eine Funktion in MySQL

Das heutige Tutorial erklärt, wie man eine Funktion in MySQL erstellt. Es erklärt zuerst die Syntax und erstellt dann eine Funktion anhand einer Beispieltabelle.

Erstellen Sie eine Funktion in MySQL

Ein gespeichertes Programm, an das wir einen oder mehrere Parameter übergeben und einen Wert zurückbekommen, wird als Funktion bezeichnet. Es verfügt über eine Reihe von SQL-Anweisungen, um einige Aufgaben auszuführen und einen Wert auszugeben.

Das Folgende ist die Syntax zum Erstellen einer MySQL-Funktion.

CREATE FUNCTION functionName(parameter1, parameter2, ..)
          RETURN dataType [characteristics]
          function_body

Hier umfasst der function_body SQL-Anweisungen, um eine Operation oder Aufgabe abzuschließen. Seine Struktur sieht wie unten angegeben aus.

BEGIN
    MySQL Statements
    RETURN Expression
END

Hier ist die vollständige Syntax zum Erstellen einer Funktion.

DELIMITER ;;

CREATE FUNCTION functionName(parameter1,parameter2,)
    RETURNS datatype
    [NOT] DETERMINISTIC

BEGIN
    MySQL Statements
    RETURN Expression
END ;;

DELIMITER ;

In der obigen Syntax machen wir die folgenden Dinge.

  1. Setzen Sie das Trennzeichen zurück, damit nicht alle Anweisungen einzeln ausgeführt werden können.
  2. Schreiben Sie den Namen der Funktion nach dem Schlüsselwort CREATE FUNCTION.
  3. Schreiben Sie alle Parameter in Klammern nach dem Funktionsnamen. Wir können die Modifikatoren namens INOUT, IN oder OUT nicht für Parameter angeben, aber sie (alle Parameter) sind standardmäßig die IN-Parameter.
  4. Schreiben Sie die gültige Rückgabe Datentyp.
  5. Geben Sie an, ob die Funktion eine DETERMINISTIK verwendet/nicht verwendet. MySQL Server verwendet das NOT DETERMINISTIC, wenn wir das Schlüsselwort NOT DETERMINISTIC/DETERMINISTIC nicht schreiben.
  6. Schreiben Sie den Hauptcode zwischen die Blöcke BEGIN und END. In den Funktionskörper müssen wir mindestens eine RETURN-Anweisung schreiben.
  7. Ändern Sie abschließend das Trennzeichen auf seinen Standardwert ;.

Bereiten wir eine Tabelle mit dem Namen users mit zwei Attributen vor, ID und CREDIT, wobei ID ein Primärschlüssel ist. Die folgenden Abfragen können verwendet werden, um die Tabelle users zu erstellen und zu füllen.

Beispielcode:

# create a table
CREATE TABLE users (
      ID INT NOT NULL AUTO_INCREMENT,
      CREDIT INT NOT NULL,
      PRIMARY KEY (id)
);

# insert data
INSERT INTO users (CREDIT) VALUES (5000);
INSERT INTO users (CREDIT) VALUES (4000);
INSERT INTO users (CREDIT) VALUES (3000);
INSERT INTO users (CREDIT) VALUES(1000);

# display data
SELECT * FROM users;

Ausgang:

+----+--------+
| ID | CREDIT |
+----+--------+
|  1 |   5000 |
|  2 |   4000 |
|  3 |   3000 |
|  4 |   1000 |
+----+--------+
4 rows in set (0.00 sec)

Wir schreiben die folgende Funktion, um den userLevel abhängig vom CREDIT zu bestimmen. Sehen Sie sich ein Codebeispiel unten an.

Beispielcode:

DELIMITER ;;

CREATE FUNCTION UserLevels(
	credit DECIMAL(10,2)
)
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
    DECLARE userLevel VARCHAR(20);

    IF credit >= 5000 THEN
		SET userLevel = 'PLATINUM';
    ELSEIF (credit >= 4000 AND
			credit < 5000) THEN
        SET userLevel = 'GOLD';
    ELSEIF (credit > 1000 AND credit < 4000 ) THEN
        SET userLevel = 'SILVER';
    ELSE
    	SET userLevel = 'BASIC';
    END IF;

	RETURN (userLevel);
END;;
DELIMITER ;

Sobald die Funktion erstellt ist, verwenden Sie die folgende Abfrage, um die Funktion aufzurufen.

SELECT ID,CREDIT, UserLevels(CREDIT) AS USER_LEVEL
FROM users;

Ausgang:

+----+--------+------------+
| ID | CREDIT | USER_LEVEL |
+----+--------+------------+
|  1 |   5000 | PLATINUM   |
|  2 |   4000 | GOLD       |
|  3 |   3000 | SILVER     |
|  4 |   1000 | BASIC      |
+----+--------+------------+
4 rows in set (0.06 sec)
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Function