Cursor in SQL bilden einen integralen Bestandteil jeder Datenbank, was einem Benutzer im Grunde dabei hilft, sich ohne großen Aufwand durch die Datenbank zu bewegen. Durch diesen Artikel über Cursor in SQL werde ich Ihnen alle notwendigen Details geben, die Sie benötigen, bevor Sie Ihre Füße damit nass machen.
Im Folgenden sind die Themen aufgeführt, die ich in diesem Artikel besprechen werde:
- Was ist Cursor in SQL?
- Typen von SQL-Cursor
- Syntax eines SQL-Cursors
- Cursor-Lebenszyklus
Was ist ein Cursor in SQL?
Cursor in SQL ist ein Objekt, das das Durchlaufen der Zeilen einer beliebigen Ergebnismenge ermöglicht. Damit können Sie eine einzelne Zeile einer Datenbank verarbeiten, die von einer Abfrage zurückgegeben wird. Es ist ein temporärer Arbeitsbereich oder Kontextbereich, der im Speichersystem während der Ausführung einer SQL-Anweisung erstellt wird, die die aus der Datenbank abgerufenen Daten speichert und bei ihrer Bearbeitung hilft. Sie können es als eine Anordnung von Zeilen zusammen mit einem Zeiger betrachten, der auf die aktuelle Zeile zeigt. Ein Cursor ist ein Datenbankobjekt, das mehr als eine Zeile enthalten kann, aber nur eine Zeile zu einem Zeitpunkt verarbeiten kann. Der Satz von Zeilen, die von einem Cursor gehalten werden, wird als aktiv bezeichnet einstellen. Somit können Sie den Datensatz einer Tabelle im Singleton-Verfahren steuern, d. h. eine Zeile zu einem beliebigen Zeitpunkt.
Nachdem Sie nun wissen, was ein Cursor in SQL ist, lassen Sie uns nun fortfahren und einen Blick auf die verschiedenen Typen werfen.
Typen von SQL-Cursor
SQL bietet zwei Arten von Cursorn, die ich unten aufgelistet habe:
-
Impliziter Cursor
Wann immer DML-Operationen wie INSERT, UPDATE und DELETE in der Datenbank verarbeitet werden, werden automatisch implizite Cursor generiert und vom Framework verwendet. Diese Arten von Cursorn werden für die interne Verarbeitung verwendet und können nicht von einem anderen Codebereich aus gesteuert oder referenziert werden. Implizite Cursor in SQL halten nur die von der Operation betroffenen Zeilen und können nur auf den neuesten Cursor verweisen, indem sie die Cursorattribute verwenden, die unten in der Tabelle gezeigt werden.
Attribut | Beschreibung |
%FOUND | Es wird TRUE zurückgegeben, falls eine INSERT-, UPDATE- oder DELETE-Anweisung eine oder mehrere Zeilen betrifft oder eine SELECT INTO-Anweisung eine oder mehrere Zeilen zurückgibt. In anderen Fällen wird FALSE zurückgegeben. |
%NOTFOUND | Es ist technisch gesehen das Gegenteil des %FOUND-Attributs. Es gibt TRUE zurück, wenn eine INSERT-, UPDATE- oder DELETE-Anweisung keine Zeilen beeinflusst oder eine SELECT INTO-Anweisung keine Zeilen zurückgibt. Andernfalls wird nur FALSE zurückgegeben. |
%ISOPEN | Dieses Attribut gibt für implizite Cursor immer FALSE zurück, da der SQL-Cursor automatisch sofort geschlossen wird, nachdem die zugehörige SQL-Anweisung ausgeführt wurde. |
%ROWCOUNT | Er gibt die Gesamtzahl der betroffenen Zeilen durch eine INSERT-, UPDATE- oder DELETE-Anweisung oder die Zeilen zurück, die durch eine SELECT INTO-Anweisung zurückgegeben werden. |
-
Expliziter Cursor
Dieser Cursortyp wird immer dann generiert, wenn Daten von einem Benutzer über einen SQL-Block verarbeitet werden. Im Allgemeinen löst die Verwendung der SELECT-Abfrage die Erstellung eines expliziten Cursors aus und kann mehr als eine Zeile enthalten, aber jeweils nur eine verarbeiten. Diese Art von Cursor wird verwendet, um die in einer Spalte vorhandenen Datensätze zu halten. Dadurch können die Programmierer zur besseren Kontrolle einen benannten Kontextbereich zum Ausführen ihrer DML-Operationen erstellen. Außerdem muss es im SQL-Block definiert werden und wird wiederum für eine SELECT-Abfrage mit diesem Code erstellt.
Um einen Cursor besser zu verstehen, sehen wir uns nun die Syntax eines Cursors in SQL an.
Syntax eines SQL-Cursors
Im Folgenden finden Sie die allgemeine Syntax zum Erstellen eines expliziten Cursors.
CURSOR cursorName IS selectStatement;
Hier:
cursorName – Dies stellt einen gültigen Namen für den Cursor dar
selectStatement – Dies stellt eine Auswahlabfrage dar, die mehrere Zeilen zurückgibt
Lassen Sie uns nun mit diesem Artikel fortfahren und den Lebenszyklus eines SQL-Cursors betrachten.
Cursor-Lebenszyklus
Es gibt grundsätzlich 5 Phasen im Lebenszyklus eines Cursors in SQL, die ich unten aufgelistet habe:
- Erklären
DECLARE cursorName CURSOR FOR selectStatement;
Dieser Schritt hilft Ihnen bei der Angabe des Namens und Datentyps des Cursors und die SELECT-Anweisung definiert seine Ergebnismenge.
- Öffnen
OPEN cursorName;
Mit diesem Schritt können Sie den Cursor öffnen und füllen, indem Sie ihn ausführen.
- Abrufen
FETCH NEXT FROM cursor INTO variableList;
Dieser Schritt ruft eine Zeile vom Cursor ab und speichert sie in einer oder mehreren Variablen.
[Optional] CheckStatus
WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursorName; END;
Diese Funktion gibt den Status der letzten FETCH-Anweisung zurück, die gegen den Cursor ausgeführt wurde. Falls diese Funktion 0 zurückgibt, bedeutet dies, dass die FETCH-Operation erfolgreich war. Um alle Zeilen vom Cursor abzurufen, wird die WHILE-Klausel verwendet.
- Schließen
CLOSE cursorName;
Dieser Schritt hilft Ihnen beim Schließen des Cursors, nachdem die Operationen abgeschlossen wurden.
- Zuweisung aufheben
DEALLOCATE cursor_name;
Dieser Schritt hilft dabei, den Cursor freizugeben und Speicherplatz freizugeben.
Damit möchte ich diesen Artikel über Cursor in SQL abschließen. Ich hoffe, dieser Artikel hat Ihnen geholfen, Ihr Wissen aufzuwerten. Weitere Informationen zu SQL oder Datenbanken finden Sie in unserer umfassenden Leseliste hier:Datenbanken Edureka .
SQL-Grundlagen für Anfänger | SQL lernen | SQL-Tutorial für Anfänger | Edureka
Dieses Edureka-Video zu „SQL-Grundlagen für Anfänger“ hilft Ihnen, die Grundlagen von SQL und auch SQL-Abfragen zu verstehen, die sehr beliebt und unerlässlich sind.
Wenn Sie eine strukturierte Schulung zu MySQL erhalten möchten, sehen Sie sich unsere MySQL-DBA-Zertifizierungsschulung an Dazu gehören von einem Kursleiter geleitete Live-Schulungen und reale Projekterfahrung. Dieses Training wird Ihnen dabei helfen, MySQL gründlich zu verstehen und das Thema zu beherrschen.
Haben Sie eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich von „Cursor in SQL ” und ich melde mich bei Ihnen.