Heim  >  Artikel  >  Datenbank  >  MySQL-Prozedurfunktion

MySQL-Prozedurfunktion

王林
王林Original
2023-05-08 19:38:36861Durchsuche

MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem. Es bietet Benutzern eine Vielzahl von Funktionen und Verfahren. Unter diesen sind MySQL-Prozeduren und -Funktionen Programme, die auf dem Datenbankserver geschrieben sind. In diesem Artikel werden wir uns mit den Grundkenntnissen, der Verwendung und Beispielen der MySQL-Prozedurfunktionen befassen.

1. Grundkenntnisse der MySQL-Prozedurfunktionen

  1. MySQL-Prozeduren

MySQL-Prozeduren sind eine Sammlung von SQL-Anweisungen, die Parameter akzeptieren und bestimmte Operationen an Eingabeparametern ausführen können. MySQL-Prozeduren können als gekapselte SQL-Anweisungen betrachtet werden. Sie können mehrere SQL-Anweisungen ausführen, um bestimmte Funktionen zu erreichen.

Der MySQL-Prozess weist die folgenden Eigenschaften auf:

(1) Der MySQL-Prozess wird serverseitig ausgeführt.

(2) MySQL-Prozeduren können Eingabeparameter empfangen und Ausgabeparameter zurückgeben.

(3) MySQL-Prozeduren können Tabellen erstellen und aktualisieren sowie Daten in die Datenbank einfügen und aktualisieren.

(4) MySQL-Prozeduren können Kontrollflussanweisungen, Schleifen, Verzweigungen und Ausnahmehandler enthalten.

(5) Der MySQL-Prozess unterstützt benutzerdefinierte Funktionen und Unterprozesse.

  1. MySQL-Funktionen

MySQL-Funktionen sind eine Reihe einzelner Abfrageanweisungen, die in MySQL definiert sind. Sie akzeptieren einen oder mehrere Eingabeparameter und geben einen oder mehrere Werte zurück. Mit Funktionen können Daten berechnet, verglichen, transformiert und manipuliert werden.

MySQL-Funktionen haben die folgenden Eigenschaften:

(1) MySQL-Funktionen werden serverseitig ausgeführt.

(2) Die MySQL-Funktion kann Eingabeparameter empfangen und Ausgabeparameter zurückgeben.

(3) MySQL-Funktionen können nur einen einzelnen Wert zurückgeben und keine Vorgänge wie Einfügen, Aktualisieren und Löschen ausführen.

(4) MySQL-Funktionen dürfen keine Kontrollflussanweisungen, Schleifen, Verzweigungen und Ausnahmehandler enthalten.

(5) Die MySQL-Funktion unterstützt benutzerdefinierte Funktionen und Unterfunktionen.

2. So verwenden Sie MySQL-Prozedurfunktionen

In MySQL können Benutzer die Anweisungen CREATE PROCEDURE und CREATE FUNCTION verwenden, um Prozeduren und Funktionen zu erstellen.

  1. Erstellen Sie eine MySQL-Prozedur

Das Folgende ist die Syntax zum Erstellen einer MySQL-Prozedur:

CREATE PROCEDURE procedure_name ([Parameter])
BEGIN

  [SQL statements]

END;

wobei procedure_name der Name der Prozedur ist, und Parameter ist die Parameterliste der Prozedur. SQL-Anweisungen sind MySQL-Anweisungen, die während des Prozesses ausgeführt werden sollen.

Zum Beispiel erstellen wir eine einfache MySQL-Prozedur, die zwei Eingabeparameter empfängt und deren Summe zurückgibt:

CREATE PROCEDURE add(IN a INT, IN b INT)
BEGIN

  SELECT a+b;

END;

  1. MySQL-Funktion erstellen

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

CREATE FUNCTION Funktionsname([Parameter]) RETURNS Datentyp
BEGIN

  [SQL statements]

END;

wobei Funktionsname der Name der Funktion ist, Parameter die Parameterliste der Funktion , data_type ist der von der Funktion zurückgegebene Datentyp und SQL-Anweisungen sind die MySQL-Anweisungen, die in der Funktion ausgeführt werden sollen.

Zum Beispiel erstellen wir eine einfache MySQL-Funktion, die einen Eingabeparameter empfängt und sein Quadrat zurückgibt:

CREATE FUNCTION quadrat(x INT) RETURNS INT
BEGIN

  RETURN x*x;

END;

3. Beispiele für prozedurale MySQL-Funktionen

  1. MySQL-Prozedurbeispiel

Das Folgende ist ein einfaches MySQL-Prozedurbeispiel, das jeden Tabellennamen und jede Zeilenanzahl in der aktuellen Datenbank an die Konsole ausgibt:

CREATE PROCEDURE table_count()
BEGIN

  DECLARE done INT DEFAULT FALSE;
  DECLARE t_name CHAR(32);
  DECLARE t_count INT;
  DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE();
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
  OPEN cur;
  repeat
        FETCH cur INTO t_name;
        IF NOT done THEN
              SET @sql = CONCAT('SELECT COUNT(*) INTO "', t_name, '_count" FROM ', t_name);
              PREPARE stmt FROM @sql;
              EXECUTE stmt;
              DEALLOCATE PREPARE stmt;
              SET @out = CONCAT(t_name, ': ', t_name, '_count');
              SELECT @out;
        END IF;
  until done END REPEAT;
  CLOSE cur;

END;

Im Obigen Im Prozess durchlaufen wir mit Cursorn alle Tabellen in der Datenbank und verwenden dynamisches SQL, um die Anzahl der Zeilen in jeder Tabelle abzurufen und auf der Konsole auszugeben.

  1. MySQL-Funktionsbeispiel

Das Folgende ist ein einfaches MySQL-Funktionsbeispiel, das eine Zeichenfolge empfängt und den ersten Buchstaben jedes darin enthaltenen Wortes zurückgibt:

CREATE FUNCTION get_initials(str VARCHAR(255)) RETURNS VARCHAR(255 )
BEGIN

  DECLARE len INT DEFAULT 0;
  DECLARE i INT DEFAULT 0;
  DECLARE initial CHAR(1);
  DECLARE initials VARCHAR(255) DEFAULT '';
  SET len = LENGTH(str);
  WHILE i<=len DO
        SET initial = SUBSTRING(str, i, 1);
        IF i = 1 OR SUBSTRING(str, i-1, 1) = ' ' THEN
              SET initials = CONCAT(initials, initial);
        END IF;
        SET i = i + 1;
  END WHILE;
  RETURN initials;

END;

In der obigen Funktion durchlaufen wir die Eingabezeichenfolge und teilen jedes Wort anhand von Leerzeichen auf, erhalten seinen ersten Buchstaben und verketten sie als Rückgabewert der Funktion.

Zusammenfassung

Die MySQL-Prozedurfunktion ist eine sehr wichtige Funktion in MySQL, die Entwicklern und Datenbankadministratoren dabei helfen kann, komplexe Datenverarbeitungsaufgaben einfach auszuführen. In diesem Artikel stellen wir die Grundkenntnisse, Verwendung und Beispiele der MySQL-Prozedurfunktionen vor. Mithilfe dieser Informationen können Sie die prozeduralen Funktionen von MySQL besser verstehen und beherrschen und ihre Vorteile in der tatsächlichen Entwicklung voll ausschöpfen.

Das obige ist der detaillierte Inhalt vonMySQL-Prozedurfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn