Heim >Datenbank >MySQL-Tutorial >Was ist der Cursor der gespeicherten MySQL-Prozedur?

Was ist der Cursor der gespeicherten MySQL-Prozedur?

青灯夜游
青灯夜游Original
2022-01-24 17:28:354608Durchsuche

In der gespeicherten MySQL-Prozedur wird der Cursor auch als Cursor bezeichnet. Es handelt sich um eine auf dem DBMS-Server gespeicherte Abfrageoperation, die im Allgemeinen zum Vorwärts- oder Rückwärtsbewegen verwendet wird abgerufene Daten.

Was ist der Cursor der gespeicherten MySQL-Prozedur?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

In MySQL geben Abfragen in gespeicherten Prozeduren oder Funktionen manchmal mehrere Datensätze zurück. Mit einer einfachen SELECT-Anweisung gibt es jedoch keine Möglichkeit, die erste Zeile, die nächste Zeile oder die ersten zehn Zeilen mit Daten abzurufen Verwenden Sie einen Cursor, um die Daten einzeln abzurufen. Lesen Sie die Datensätze im Abfrageergebnissatz. In einigen Materialien werden Cursor auch als Cursor bezeichnet.

Einführung in Cursor

1. Cursor: Auch Cursor genannt, handelt es sich um eine auf dem DBMS-Server gespeicherte Datenbankabfrage, sondern um eine von der Anweisung abgerufene Ergebnismenge.

2. Zweck: Vorwärts- oder Rückwärtsoperationen an abgerufenen Daten, die hauptsächlich für interaktive Anwendungen verwendet werden, z. B. das Scrollen von Daten auf dem Bildschirm durch Benutzer.

Funktionen:
  • Kann den Cursor als schreibgeschützt markieren, damit die Daten angezeigt werden kann lesen, aber nicht aktualisieren und löschen
  • Kann die Richtungsoperationen steuern, die ausgeführt werden können (vorwärts, rückwärts, erste, letzte, absolute Position, relative Position usw.)
  • Kann einige Spalten als bearbeitbar markieren, andere nicht. bearbeitbar
  • Gibt den Bereich an und macht den Cursor für die spezifische Anfrage zugänglich, die ihn erstellt hat (z. B. eine gespeicherte Prozedur) oder für alle Anfragen
  • Nur das DBMS kopiert die abgerufenen Daten (anstatt auf die aktiven Daten in der Tabelle hinzuweisen) , Daten während des Öffnens und Zugriffs des Cursors unverändert lassen

4 DBMS, das Cursor unterstützt: DB2, MariaDB, MySQL 5, SQL Server, SQLite, Oracle und PostgreSQL, während Microsoft Access nicht unterstützt

5 -basierte Anwendungen sind nicht sehr nützlich (ASP, ASP.NET, ColdFusion, PHP, Python, Ruby, JSP usw.) und die meisten Webanwendungsentwickler verwenden keine Cursor

6. Verwendung:
  • Cursor deklarieren: DECLARE Cursorname CURSOR FOR SELECT * FROM Tabellenname; // Es wurden noch keine Daten abgerufen
    -- MySQL游标的声明
    DECLARE cursor_name CURSOR FOR select_statement
    
    -- SQL Server游标的声明
    DECLARE cursor_name CURSOR FOR select_statement [FOR [READ ONLY | UPDATE {[co lumn_list]}]]
    
    -- Oracle游标的声明
    DECLARE CORSOR cursor_name IS {select_statement}
  • Cursor öffnen: OPEN Cursorname; // Abruf der Daten starten, d. h. die SELECT-Anweisung des angegebenen Cursors wird ausgeführt und das Abfrageergebnis angezeigt Der Satz wird in einem bestimmten Bereich im Speicher gespeichert.
    -- MySQL打开游标
    OPEN cursor_name
    
    
    -- SQL Server打开游标
    OPEN cursor_name
    
    
    -- Oracle打开游标
    OPEN cursor_name [param1 [, param2]]
  • Daten abrufen: FETCH Cursor_Name into var1,var2,...,varn; //Wenn der Cursor_Name die Daten abruft, wird das End-Flag erst beim nächsten Abruf ausgelöst
    -- MySQL游标获取数据
    FETCH cursor_name INTO var1_name [, var2_name] ...
    
    
    -- SQL Server游标获取数据
    FETCH NEXT FROM cursor_name [INTO fetch_list]
    
    
    -- Oracle游标获取数据
    FETCH cursor_name  {INTO : host_var1 [[INDICATOR] : indicator_var1] [, : host_var2 [[INDICATOR] : indicator_var2]] | USING DESCRIPTOR DESCRIPTOR}
  • Cursor schließen: CLOSE Cursor_Name;

-- MySQL关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name


-- SQL Server关闭游标和释放资源
CLOSE cursor_name
DEALLOCATE cursor_name


-- Oracle关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name
【Verwandte Empfehlung:MySQL-Video-Tutorial】🎜

Das obige ist der detaillierte Inhalt vonWas ist der Cursor der gespeicherten MySQL-Prozedur?. 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