Was ist der Cursor in Python?

Was ist der Cursor in Python?
Ein Cursor ist ein Objekt, das hilft, die Abfrage auszuführen und die Datensätze aus der Datenbank abzurufen. Der Cursor spielt eine sehr wichtige Rolle bei der Ausführung der Abfrage. In diesem Artikel werden einige tiefe Informationen über die Ausführungsmethoden und die Verwendung dieser Methoden in Python er erfahren.

Wir können das Cursorobjekt über die MySQL erstellen.

Erstellen Sie ein Cursorobjekt:

#Python cursor_object.py
#Importieren Sie die Bibliothek
MySQL importieren.Verbinder
# Verbindung erstellen
conn = mysql.Verbinder.verbinden(
Host = "Localhost",
User = "Sammy",
Passwort = "Passwort"
)
#print der Verbindung
Druck (conn)
# Importieren Sie den Cursor aus der Verbindung (Conn)
MyCursor = conn.Mauszeiger()
#print der MyCursor
Druck (MyCursor)

Ausgang: Python Cursor_Object.py


CMYSQLCURSOR: (Noch nichts ausgeführt)

Zeile 4: Wir importieren die Connector -Klasse aus MySQL.

Zeile 7 bis 11: Wir haben über die Connector -Klasse auf die Connect -Methode zugreifen, die wir bereits in unser Programm importieren. Jetzt übergeben wir unsere Verbindungsparameter an die Connect -Methode. Der Benutzername und das Kennwort sind je nach Installationsprozess unterschiedlich.

Zeile 16: Wir haben die Cursormethode aus dem CONN -Objekt (etabliertes Anschluss) importiert und das Cursorobjekt (MyCursor) erstellt.

Zeile 18: Jetzt drucken wir diesen MyCursor, den wir in Zeile 16 erstellt haben, nur aus, und die Ausgabe zeigt, dass CMYSQLCURSOR: (Noch nichts ausgeführt).

Methode Cursor.ausführen ():

Die Methode execute () hilft uns, die Abfrage auszuführen und Datensätze gemäß der Abfrage zurückzugeben. Die Syntax der Funktion execute () lautet:

ausführen (Abfrage, args = keine)

Parameter:

  • Anfrage: Dies sollte ein String -Typ sein.
  • Argumente: Standardmäßig sind die Argumente Keiner Weil wir manchmal nur eine Frage wie a bestehen können WÄHLEN Abfragen Sie die Datensätze ab und benötigen keine Werte. Das ist der Grund für die args = keine standardmäßig. Aber wenn wir die Werte im Fall des EINFÜGUNG Abfrage, dann muss der Typ der Argumente nur ein Tupel, eine Liste oder ein Diktat sein.

Kehrt zurück:

  • Es wird die Anzahl der während der Abfrage betroffenen Zeilen zurückgeben.

Rückgabetyp:

  • Der Rückgabetyp ist eine Ganzzahl (int).
    Jetzt werden wir einige Beispiele zeigen.

Beispiel 1: Verwenden Sie die Methode execute () nur für die Abfrage

#Python Simple_execute_function.py
#Importieren Sie die Bibliothek
MySQL importieren.Verbinder
# Verbindung erstellen
conn = mysql.Verbinder.verbinden(
Host = "Localhost",
User = "Sammy",
Passwort = "Passwort",
Database = "DBTEST"
)
# Importieren Sie den Cursor aus der Verbindung (Conn)
MyCursor = conn.Mauszeiger()
Mycursor.ausführen ("aus dem Film auswählen")
# über das Ergebnis iterieren
Für Zeile im MyCursor:
Druck (Zeile)
# Wir schließen den Cursor und Conn beides
Mycursor.schließen()
Conn.schließen()

Ausgang: Python Simple_execute_function.py

(1, 'Bruce Allmighty', 2003)
(2, 'Kung Fu Panda', 2014)
(3, 'Kung Fu Panda', 2014)
(4, 'Frozen', 2014)
(5, 'Frozen2', 2020)
(6, 'Iron Man', 2013)

Zeile 11: Wir haben der Datenbank noch einen Parameternamen hinzugefügt. Jetzt versucht unser Python -Code nur, nur eine Verbindung mit dieser MySQL -Datenbank (DBTEST) zu erreichen.

Zeile 15: Wir haben ein Cursorobjekt (MyCursor) erstellt.

Zeile 17: Wir führen eine einfache Abfrage aus, die über die Ausführungsfunktion ausgewählt wird.

Zeile 20 bis 21: Wir haben die vom Cursorobjekt erzielten Ergebnisse iteriert und festgestellt, dass alle Datensätze in Tupel zurückgegeben werden.

Beispiel_2: verwenden

#Python Insert_Record_execute.py
#Importieren Sie die Bibliothek
MySQL importieren.Verbinder
# Die Verbindung zur Datenbank erstellen
conn = mysql.Verbinder.verbinden(
Host = "Localhost",
User = "Sammy",
Passwort = "Passwort",
Database = "DBTEST"
)
MyCursor = conn.Mauszeiger()
# Führen Sie die Abfrage mit ihrem Datensatzwert aus
Query = 'In Film (ID, Name, Jahr) Werte ( %s, %s, %s) einfügen
Val = (7, "Merlin", 2001)
Mycursor.ausführen (Abfrage, Val)
# Wir verpflichten (speichern) die Datensätze auf der Tabelle
Conn.begehen()
Druck (MyCursor.RowCount, "Aufzeichnungen) eingefügt."))

Ausgang: Python Insert_Record_execute.py

MySQL> Verwenden Sie DBTEST;
Informationen zum Lesen von Tabellen zum Abschluss der Tabellen- und Spaltennamen
Sie können diese Funktion ausschalten, um ein schnelleres Start mit -A zu erhalten
Datenbank geändert
MySQL> SELECT * aus dem Film;
+----+----------------+------+
| id | Name | Jahr |
+----+----------------+------+
| 1 | Bruce Allmighy | 2003 |
| 2 | Kung Fu Panda | 2014 |
| 3 | Kung Fu Panda | 2014 |
| 4 | Gefroren | 2014 |
| 5 | Frozen2 | 2020 |
| 6 | Iron Man | 2013 |
| 7 | Merlin | 2001 |
+----+----------------+------+
7 Zeilen im Set (0.00 Sek.)
MySQL>

Zeile 11: Wir haben der Datenbank noch einen Parameternamen hinzugefügt. Jetzt versucht unser Python -Code nur, nur eine Verbindung mit dieser MySQL -Datenbank (DBTEST) zu erreichen.

Zeile 17: Wir erstellen unsere Abfrage für die Einfügungsdaten.

Zeile 18: Wir erstellen den Wert für diese Abfrage, die in die Tabelle einfügt werden soll.

Zeile 21: Wir verwenden die Funktion execute () und übergeben sowohl Abfrage als auch VAL als Parameter.

Und die obige Ausgabe zeigt, dass der Datensatz erfolgreich in die Tabelle eingefügt wurde.

Methode Methodendetails
fetchone () Dadurch wird die einzelne Zeile aus dem Ergebnis zurückgegeben, und wenn es keinen Datensatz zur Rückgabe gibt, wird sie als keine zurückgegeben.
FetchMany ([Größe]) Dadurch wird die Anzahl der Zeilen als Größe zurückgegeben, die aus den Ergebnissätzen angegeben sind. Wenn es keinen Datensatz zur Rückgabe gibt, wird [] [] zurückgegeben []. Die Standardgröße beträgt 1.
fetchall () Gibt die alle oder verbleibenden Zeilen aus dem Ergebnissatz zurück.

Erklären wir die oben genannten Methoden anhand eines Beispiels.

#Python cursor_method.py
#Importieren Sie die Bibliothek
MySQL importieren.Verbinder
# Verbindung erstellen
conn = mysql.Verbinder.verbinden(
Host = "Localhost",
User = "Sammy",
Passwort = "Passwort",
Database = "DBTEST"
)
# Importieren Sie den Cursor aus der Verbindung (Conn)
MyCursor = conn.Mauszeiger()
Mycursor.ausführen ("aus dem Film auswählen")
Druck (MyCursor.Fetchone ()) # Die erste Zeile holen
Druck (MyCursor.FetchMany (4)) # Die nächsten 2 Zeilen holen
Druck (MyCursor.fetchall ()) # holen alle verbleibenden Zeilen ab
Druck (MyCursor.FetchMany ()) # Das Ergebnissatz ist jetzt leer
# Wir schließen den Cursor und Conn beides
Mycursor.schließen()
Conn.schließen()

Ausgang: Python Cursor_method.py

(1, 'Bruce Allmighty', 2003)
[(2, 'Kung Fu Panda', 2014), (3, 'Kung Fu Panda', 2014), (4, 'Frozen', 2014), (5, 'Frozen2', 2020)]
[(6, 'Iron Man', 2013), (7, 'Merlin', 2001)]
[(6, 'Iron Man', 2013)]

Zeile 19: Die Fetchone () -Methode holt den ersten Datensatz aus den Ergebnismengen ab.

Zeile 20: Die FetchMany (4) -Methode holt die vier Datensätze aus den Ergebnissätzen ab.

Zeile 21: Die Methode Fetchall () holt alle verbleibenden Datensätze aus den Ergebnissätzen ab.

Zeile 22: Der Fetchmany () verfügt. Aber wie die Fetchmany (4).

Methode Cursor.Executemany ():

Die Executemany () -Methode hilft uns, mehrere Datensätze gleichzeitig einzufügen oder zu ersetzen. Die Syntax der Funktion von Executemany () ist:

Executemany (Abfrage, Args)

Parameter:

  • Anfrage: Dies sollte ein String -Typ sein.
  • Argumente: Standardmäßig sind die Argumente Keine, Deshalb können wir das nicht ausführen WÄHLEN Abfrage darin. Wir können die Werte entweder übergeben Tupel oder Liste nur.

Kehrt zurück:

  • Es wird die Anzahl der während der Abfrage betroffenen Zahlen zurückgeben, falls vorhanden.

Rückgabetyp:

  • Der Rückgabetyp ist eine Ganzzahl (int oder keine).

Jetzt werden wir ein Beispiel für die obige Methode zeigen.

#Python Executemany.py
#Importieren Sie die Bibliothek
MySQL importieren.Verbinder
# Die Verbindung zur Datenbank erstellen
conn = mysql.Verbinder.verbinden(
Host = "Localhost",
User = "Sammy",
Passwort = "Passwort",
Database = "DBTEST"
)
MyCursor = conn.Mauszeiger()
# Führen Sie die Abfrage mit ihrem Datensatzwert aus
Query = 'In Film (ID, Name, Jahr) Werte ( %s, %s, %s) einfügen
Val = [(2, "Kung Fu Panda", 2014),
(4, "Frozen", 2014),
(5, "Frozen2", 2020),
(6, "Iron Man", 2013)
]
Mycursor.Executemany (Abfrage, Val)
# Wir verpflichten (speichern) die Datensätze auf der Tabelle
Conn.begehen()
Druck (MyCursor.RowCount, "Aufzeichnungen) eingefügt."))

Zeile 17: Wir erstellen unsere Abfrage für die Einfügungsdaten.

Zeile 18: Wir erstellen eine Liste von Werten, die wir in die Tabelle einfügen möchten.

Zeile 25: Wir verwenden die Methode Executemany (), um die Mehrere Datensätze einzugeben.

Ausgang: Python Executemany.py

MySQL> SELECT * aus dem Film;
+----+----------------+------+
| id | Name | Jahr |
+----+----------------+------+
| 1 | Bruce Allmighy | 2003 |
| 2 | Kung Fu Panda | 2014 |
| 3 | Kung Fu Panda | 2014 |
| 4 | Gefroren | 2014 |
| 5 | Frozen2 | 2020 |
| 6 | Iron Man | 2013 |
+----+----------------+------+
6 Zeilen im Set (0.00 Sek.)

Führen Sie viele Abfragen mit einer einzelnen execute () -Funktion aus:

Wir können auch mehrere Abfragen mit der Funktion "Single Execute () ausführen. Die Funktion execute () akzeptiert einen zusätzlichen Parameter, Multi. Der multi = false standardmäßig. Wenn wir behalten multi = true, Dann können wir eine Multi-SQL-Abfrage mit dem Semikolon (;) -Teparator ausführen.

# Python execute_multi.py
#Importieren Sie die Bibliothek
MySQL importieren.Verbinder
# Verbindung erstellen
conn = mysql.Verbinder.verbinden(
Host = "Localhost",
User = "Sammy",
Passwort = "Passwort",
Database = "DBTEST"
)
# Importieren Sie den Cursor aus der Verbindung (Conn)
MyCursor = conn.Mauszeiger()
# Mit Formatparameterstil abfragen
query_1 = "aus dem Film auswählen"
query_2 = 'In Film (ID, Name, Jahr) Werte ( %s, %s, %s) einfügen
queries = [query_1, query_2]
Val = (8, "Serie", 2001)
Multiresults = MyCursor.ausführen(";".Join (Abfragen), Val, multi = true)
count = 1
Für Multiresults: Ergebnis:
# Ergebnis ist wie ein Cursor, sodass wir auf alle zugreifen können
# Attribute des Cursors
print ("query_ 0 - 1:".Format (zählen, Ergebnis.Stellungnahme))
Wenn Ergebnis.With_rows:
Für die Zeile im Ergebnis:
Druck (Zeile)
count = count + 1
anders:
print ("kein Ergebnis")
drucken()
Mycursor.schließen()
Conn.schließen()

Ausgang: Python execute_multi.py

Query_1 - Wählen Sie * aus dem Film:
(1, 'Bruce Allmighty', 2003)
(2, 'Kung Fu Panda', 2014)
(3, 'Kung Fu Panda', 2014)
(4, 'Frozen', 2014)
(5, 'Frozen2', 2020)
(6, 'Iron Man', 2013)
(7, 'Merlin', 2001)
Query_2 - In Film (ID, Name, Jahr) Werte einfügen (8, 'Serie', 2001):
Kein Ergebnis

Zeile 23: Wir haben eine Liste von zwei Abfragen erstellt.

Zeile 28: Wir übergeben die Liste der Abfragen, Val und Separator (;) an die ausführende () -Methode. Wir ändern auch den Wert von Multi von falsch bis wahr.

In der obigen Ausgabe können wir unsere Ergebnisse des Multiquery sehen.

Abschluss:

In diesem Artikel haben wir die Execute () -Methode untersucht. Wir haben auch verschiedene Arten von Execute () -Methoden wie die Executemany () -Methode gesehen. Wir haben auch untersucht, wie man durch den Cursor abfragt. Methode ausführen () und verschiedene Parameter dieser Methode. Endlich haben wir auch gesehen, wie wir mit der Methode execute () multiquery machen können.

Der Code für diesen Artikel ist unter dem GitHub -Link verfügbar:
https: // github.com/Shekharpandey89/Cursor-Execute-Python