Heim  >  Artikel  >  Datenbank  >  Array gespeicherter MySQL-Prozeduren

Array gespeicherter MySQL-Prozeduren

王林
王林Original
2023-05-23 10:29:372132Durchsuche

Die gespeicherte Prozedur von MySQL ist eine Reihe von SQL-Anweisungen, die in der Datenbank gespeichert sind und wiederholt aufgerufen und ausgeführt werden können. Die Syntax zum Definieren gespeicherter Prozeduren in MySQL ist grundsätzlich dieselbe wie bei Funktionen, gespeicherte Prozeduren können jedoch mehr SQL-Anweisungen und Steueranweisungen enthalten, sodass komplexere Vorgänge ausgeführt werden können. In gespeicherten MySQL-Prozeduren werden Arrays häufig zum Speichern, Lesen, Ändern und Löschen von Daten verwendet. Dieser Artikel befasst sich mit den Arrays gespeicherter MySQL-Prozeduren, einschließlich der Definition von Arrays, Operationen auf Arrays und Anwendungsfällen von Arrays.

1. Definition eines Arrays

Ein Array ist eine geordnete Datenstruktur, die aus seriell verbundenen Datenelementen desselben Datentyps besteht. In gespeicherten MySQL-Prozeduren können Arrays durch Variablen oder Tabellen implementiert werden. Durch Variablen implementierte Arrays können eindimensionale oder mehrdimensionale Arrays definieren; durch Tabellen implementierte Arrays können Tabellenarrays definieren. Die Definitionsmethoden dieser drei Arrays werden im Folgenden vorgestellt.

  1. Eindimensionales Array

In gespeicherten MySQL-Prozeduren können eindimensionale Arrays durch Variablen implementiert werden. Die Methode zum Definieren eines eindimensionalen Arrays ähnelt der Definition einer Variablen. Sie müssen lediglich Klammern [] nach dem Variablennamen hinzufügen und die Länge des Arrays in den Klammern angeben. Definieren Sie beispielsweise ein ganzzahliges eindimensionales Array:

DECLARE arr1 INT[5];

wobei arr1 der Array-Name, INT der Datentyp und 5 ist die Array-Länge. Sie können eine Schleifenanweisung verwenden, um das Array zu durchlaufen, zum Beispiel:

DECLARE i INT;
SET i = 1;
WHILE i <= 5 DO#🎜🎜 #

SET arr1[i] = i;
SET i = i+1;
#🎜🎜 #END WHILE;

Der obige Code weist jedem Element des Arrays 1~5 zu.

Mehrdimensionales Array
  1. In gespeicherten MySQL-Prozeduren können mehrdimensionale Arrays durch verschachtelte Definitionen eindimensionaler Arrays implementiert werden. Definieren Sie beispielsweise ein zweidimensionales Integer-Array:

DECLARE arr2 INT3;

wobei arr2 der Array-Name, INT der Datentyp und 3 und 4 zwei Dimensionen sind Länge. Sie können eine Doppelschleifenanweisung verwenden, um das Array zu durchlaufen, zum Beispiel:

DECLARE i INT;

SET i = 1;

WHILE i <= 3 DO

SET j = 1;
WHILE j <= 4 DO
    SET arr2[i][j] = i*j;
    SET j = j+1;
END WHILE;
SET i = i+1;

END WHILE;

Der obige Code weist jedes Element des Arrays dem Produkt aus der Anzahl der Zeilen und Spalten zu, in denen es sich befindet .

Tabellenarray

  1. In gespeicherten MySQL-Prozeduren ist ein Tabellenarray ein Array, das aus mehreren Tabellen besteht. Jede Tabelle hat die gleiche Struktur. Definieren Sie beispielsweise ein Tabellenarray mit 3 Tabellen:
DECLARE tab TABLE(

id INT,
name VARCHAR(20),
age INT

);

DECLARE arr3 tab[3];

# 🎜🎜# Unter diesen ist tab die Struktur der Tabelle, id, name und age sind die Spaltennamen der Tabelle; arr3 ist der Name des Tabellenarrays und 3 ist die Arraylänge. Sie können eine Schleifenanweisung verwenden, um jede Tabelle im Array zu durchlaufen, zum Beispiel:


DECLARE i INT;

SET i = 1;

WHILE i <= 3 DO #🎜🎜 #

SET @sql = CONCAT('INSERT INTO arr3[', i, '] VALUES(1, "Tom", 20)');
PREPARE stmt FROM @sql;
EXECUTE stmt;
SET i = i+1;

END WHILE;

DEALLOCATE PREPARE stmt;

Der obige Code fügt ein Datenelement in jede Tabelle im Tabellenarray mit dem Namen arr3 ein.

2. Array-Operationen

Array-Operationen in gespeicherten MySQL-Prozeduren umfassen hauptsächlich Array-Zugriff, -Änderung und -Löschung. Die Methoden dieser Operationen werden im Folgenden vorgestellt.

Array-Zugriff

Der Zugriff auf Array-Elemente kann über Indizes erreicht werden, die bei 0 beginnen. Um beispielsweise auf das dritte Element des eindimensionalen Arrays arr1 zuzugreifen:
  1. SELECT arr1[2];
Um auf das Element der zweiten Zeile und dritten Spalte von zuzugreifen das zweidimensionale Array arr2:

SELECT arr22;

Zugriff auf alle Daten in der zweiten Tabelle des Tabellenarrays arr3:

SELECT * FROM arr3 [2];#🎜 🎜#

Array-Änderung

Das Ändern von Array-Elementen kann durch Zuweisungsoperationen erreicht werden. Ändern Sie beispielsweise das 4. Element des eindimensionalen Arrays arr1:

    SET arr1[3] = 10;
  1. Ändern Sie die 2. Zeile und die 3. Spalte des zweidimensionalen Arrays. dimensionales Array arr2 Element:

SET arr22 = 5;

Ändern Sie die Altersspalte des Datensatzes mit der ID 1 in der dritten Tabelle des Tabellenarrays arr3:

# 🎜🎜# UPDATE arr3[3] SET age = 25 WHERE id = 1;

Array-Löschung

Das Löschen von Array-Elementen kann durch erfolgen Weisen Sie dem Element NULL zu oder verwenden Sie die DELETE-Anweisung. Löschen Sie beispielsweise das zweite Element des eindimensionalen Arrays arr1:

SET arr1[1] = NULL;
  1. Löschen Sie die zweite Zeile und Spalte des zweidimensionalen Array arr2 Elementlöschung:
SET arr22 = NULL;

Löschen Sie den Datensatz mit der ID 1 in der zweiten Tabelle im Tabellenarray arr3:

DELETE FROM arr3[2] WHERE id = 1;

3 Anwendungsfälle von Arrays

Arrays werden häufig in gespeicherten MySQL-Prozeduren verwendet. Im Folgenden werden zwei Array-Anwendungsfälle vorgestellt, nämlich die Array-Sortierung und die Array-Konvertierung in einen String.

Array-Sortierung

Die Sortierung eindimensionaler Arrays kann durch Schleifenanweisungen und bedingte Anweisungen erreicht werden. Sortieren Sie beispielsweise das eindimensionale Array arr1 nach einer Blase:

DECLARE i INT;
    DECLARE j INT;
  1. DECLARE temp INT;
  2. SET i = 1;# 🎜🎜#WHILE i <= 4 DO
SET j = i+1;
WHILE j <= 5 DO
    IF arr1[i] > arr1[j] THEN
        SET temp = arr1[i];
        SET arr1[i] = arr1[j];
        SET arr1[j] = temp;
    END IF;
    SET j = j+1;
END WHILE;
SET i = i+1;

END WHILE;

Das sortierte Array-Ausgabeergebnis ist:

SELECT * FROM arr1 ;

Array in String konvertieren

Das Konvertieren eines Arrays in einen String kann durch Schleifenanweisungen und String-Funktionen erreicht werden. Konvertieren Sie beispielsweise das eindimensionale Array arr1 in eine durch Kommas getrennte Zeichenfolge:

DECLARE i INT;

DECLARE str VARCHAR(100);
    SET i = 1;# 🎜 🎜#SET str = '';
  1. WHILE i <= 5 DO
  2. IF i = 1 THEN
        SET str = CONCAT(str, arr1[i]);
    ELSE
        SET str = CONCAT(str, ',', arr1[i]);
    END IF;
    SET i = i+1;
END WHILE;

SELECT str;

Konvertierte Zeichen Die Ergebnis der Zeichenfolgenausgabe ist:

1,2,3,4,5

4. Zusammenfassung

In diesem Artikel werden Arrays in gespeicherten MySQL-Prozeduren vorgestellt, einschließlich der Definition von Arrays, Array-Operationen und Array-Anwendungsfällen. Als geordnete und effiziente Datenspeichermethode haben Arrays einen wichtigen Anwendungswert im Speicherprozess. Durch die Lektüre dieses Artikels glaube ich, dass die Leser die Anwendungsmethode von Arrays in gespeicherten MySQL-Prozeduren beherrschen und Arrays in der tatsächlichen Entwicklung flexibel anwenden können, um komplexere Vorgänge abzuschließen.

Das obige ist der detaillierte Inhalt vonArray gespeicherter MySQL-Prozeduren. 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