Jaki jest kursor wykonany w Python?

Jaki jest kursor wykonany w Python?
Kursor to obiekt, który pomaga wykonać zapytanie i pobierać rekordy z bazy danych. Kursor odgrywa bardzo ważną rolę w wykonywaniu zapytania. W tym artykule pozna się głębokich informacji o metodach wykonania i sposobu korzystania z tych metod w Python.

Możemy utworzyć obiekt kursora przez MySQL.

Utwórz obiekt kursora:

#Python Cursor_Object.py
#Wportu na bibliotekę
Importuj mysql.złącze
# Tworzenie połączenia
conn = mysql.złącze.łączyć(
host = "localhost",
user = "Sammy",
hasło = "hasło"
)
#Print połączenie
Drukuj (Conn)
# Zaimportuj kursor z połączenia (Conn)
MyCursor = Conn.kursor()
#PRORT THE MYCURSOR
Drukuj (mykursor)

Wyjście: Python Cursor_Object.py


CmysqlCursor: (nic jeszcze nie wykonano)

Linia 4: Importujemy klasę złącza z MySQL.

Linia od 7 do 11: Uzyskamy dostęp do metody Connect za pośrednictwem klasy złącza, którą już importujemy do naszego programu. Teraz przekazujemy nasze parametry połączenia do metody Connect. Nazwa użytkownika i hasło będą różne w zależności od procesu instalacji.

Linia 16: Zaimportowaliśmy metodę kursora z obiektu ustalonego połączenia (Conn) i stworzyliśmy obiekt kursora (MyCursor).

Linia 18: Teraz po prostu drukujemy ten mykursor, który stworzyliśmy w linii 16, a wyjście pokazuje, że cmysqlcursor: (nic jeszcze nie wykonano).

Kursor metody.wykonać ():

Metoda execute () pomaga nam wykonywać zapisy i zwrócić rekordy zgodnie z zapytaniem. Składnia funkcji execute () to:

Wykonaj (zapytanie, args = brak)

Parametry:

  • zapytanie: To powinien być typ ciągów.
  • Argumenty: Domyślnie argumenty są Nic Ponieważ czasami możemy przekazać tylko zapytanie jak WYBIERAĆ zapytanie, które pobiera rekordy i nie wymaga żadnych wartości. Więc to jest powód args = brak domyślnie. Ale jeśli chcemy przekazać wartości w przypadku WSTAWIĆ zapytanie, wówczas typ argumentów musi być tylko krotek, lista lub dykt.

Zwroty:

  • Zwróci liczbę liczb wierszy dotkniętych podczas zapytania.

Typ powrotu:

  • Typ powrotu będzie liczbą całkowitą (int).
    Teraz pokażemy kilka przykładów.

Przykład 1: Użyj metody Execute () tylko do zapytania

#Python simple_execute_function.py
#Wportu na bibliotekę
Importuj mysql.złącze
# Tworzenie połączenia
conn = mysql.złącze.łączyć(
host = "localhost",
user = "Sammy",
hasło = "hasło",
baza danych = "DBTest"
)
# Zaimportuj kursor z połączenia (Conn)
MyCursor = Conn.kursor()
mykursor.Wykonaj („Wybierz * z filmu”)
# iteruj wynik
do wiersza w MyCursor:
Drukuj (wiersz)
# Zamykamy kursor i conn oba
mykursor.zamknąć()
Conn.zamknąć()

Wyjście: Python Simple_Execute_function.py

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

Linia 11: Dodaliśmy jeszcze jedną nazwę parametrów do bazy danych. Teraz nasz kod Pythona będzie próbował połączyć się z tą bazą danych MySQL (DBTest).

Linia 15: Stworzyliśmy obiekt kursora (MyCursor).

Linia 17: Uruchamiamy proste zapytanie Wybierz za pośrednictwem funkcji Wykonaj.

Linia 20–21: Iteraliśmy wyniki pobierane przez obiekt kursora i zauważyliśmy, że wszystkie rekordy są zwracane w krotkach.

Przykład_2: Użyj metody execute () do wstawienia pojedynczego rekordu

#Python insert_record_execute.py
#Wportu na bibliotekę
Importuj mysql.złącze
# Tworzenie połączenia z bazą danych
conn = mysql.złącze.łączyć(
host = "localhost",
user = "Sammy",
hasło = "hasło",
baza danych = "DBTest"
)
MyCursor = Conn.kursor()
# Wykonaj zapytanie z ich wartością rekordu
zapytanie = „Wstaw do filmu (id, nazwa, rok) ( %s, %s, %s)”
Val = (7, „Merlin”, 2001)
mykursor.Wykonaj (zapytanie, val)
# Zobowiązujemy (zapisujemy) rekordy do tabeli
Conn.popełniać()
Drukuj (Mycursor.RowCount, „Wstaw rekordy.")

Wyjście: Python insert_record_execute.py

mysql> Użyj DBTest;
Informacje o odczytaniu tabeli w celu zakończenia nazwy tabeli i kolumn
Możesz wyłączyć tę funkcję, aby uzyskać szybszy startup z -a
Baza danych zmieniła się
mysql> Wybierz * z filmu;
+----+----------------+------+
|. Id | Nazwa | Rok |
+----+----------------+------+
|. 1 | Bruce Wszechmogący | 2003 |
|. 2 | Kung Fu Panda | 2014 |
|. 3 | Kung Fu Panda | 2014 |
|. 4 | Frozen | 2014 |
|. 5 | Frozen2 | 2020 |
|. 6 | Iron Man | 2013 |
|. 7 | Merlin | 2001 |
+----+----------------+------+
7 wierszy w zestawie (0.00 s)
mysql>

Linia 11: Dodaliśmy jeszcze jedną nazwę parametrów do bazy danych. Teraz nasz kod Pythona będzie próbował połączyć się z tą bazą danych MySQL (DBTest).

Linia 17: Tworzymy nasze zapytanie do danych wstawienia.

Linia 18: Tworzymy wartość tego zapytania, aby wstawić do tabeli.

Linia 21: Używamy funkcji execute () i przekazujemy do nich zarówno zapytanie, jak i val jako parametr.

A powyższe wyjście pokazuje, że rekord został pomyślnie włożony do tabeli.

metoda Szczegóły metody
fetchone () Zwróci to pojedynczy wiersz z wyniku, a jeśli nie ma rekordów do zwrócenia, powróci jako brak.
FetchMany ([rozmiar]) Zwróci to liczbę wierszy określonych z zestawów wyników, a jeśli nie ma rekordów do zwrócenia, zwróci []. Domyślny rozmiar to 1.
fetchall () Zwraca wszystkie lub pozostałe wiersze z zestawu wyników.

Wyjaśnijmy powyższe metody przy użyciu przykładu.

#Python cursor_method.py
#Wportu na bibliotekę
Importuj mysql.złącze
# Tworzenie połączenia
conn = mysql.złącze.łączyć(
host = "localhost",
user = "Sammy",
hasło = "hasło",
baza danych = "DBTest"
)
# Zaimportuj kursor z połączenia (Conn)
MyCursor = Conn.kursor()
mykursor.Wykonaj („Wybierz * z filmu”)
Drukuj (Mycursor.fetchone ()) # pobraj pierwszy rząd
Drukuj (Mycursor.FetchMany (4)) # Pobierz kolejne 2 wiersze
Drukuj (Mycursor.fetchall ()) # Przyprzyj wszystkie pozostałe wiersze
Drukuj (Mycursor.fetchMany ()) # Zestaw wyników jest teraz pusty
# Zamykamy kursor i conn oba
mykursor.zamknąć()
Conn.zamknąć()

Wyjście: Python cursor_method.py

(1, „Bruce Almighty”, 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)]

Linia 19: Metoda fetchone () pobiera pierwszy rekord z zestawów wyników.

Linia 20: Metoda FetchMany (4) pobiera cztery rekordy z zestawów wyników.

Linia 21: Metoda fetchall () pobiera wszystkie pozostałe rekordy z zestawów wyników.

Linia 22: FetchMany () ma domyślny rozmiar 1, więc ponownie próbuje pobrać jeden rekord z zestawów wyników. Ale ponieważ metoda FetchMany (4) dostęp do 4 rekordów i metody fetchone () uzyskują dostęp do pierwszego rekordu, więc próbuje pobrać 6. krotek z zestawów rekordów.

Kursor metody.ExecuTemody ():

Metoda ExecuTemany () pomaga nam wstawić lub zastąpić wiele rekordów jednocześnie. Składnia funkcji execuTemany () to:

ExecuTemany (zapytanie, args)

Parametry:

  • zapytanie: To powinien być typ ciągów.
  • Argumenty: Domyślnie argumenty są Nie żaden, Dlatego nie jesteśmy w stanie wykonać WYBIERAĆ zapytanie w tym. Możemy przekazać wartości albo typu Tuple lub lista tylko.

Zwroty:

  • Zwróci liczbę liczb wierszy dotkniętych podczas zapytania, jeśli takie inaczej.

Typ powrotu:

  • Typ powrotu będzie liczbą całkowitą (int lub none).

Teraz pokażemy przykład powyższej metody.

#Python ExecuTemany.py
#Wportu na bibliotekę
Importuj mysql.złącze
# Tworzenie połączenia z bazą danych
conn = mysql.złącze.łączyć(
host = "localhost",
user = "Sammy",
hasło = "hasło",
baza danych = "DBTest"
)
MyCursor = Conn.kursor()
# Wykonaj zapytanie z ich wartością rekordu
zapytanie = „Wstaw do filmu (id, nazwa, rok) ( %s, %s, %s)”
val = [(2, „Kung Fu Panda”, 2014),
(4, „Frozen”, 2014),
(5, „Frozen2”, 2020),
(6, „Iron Man”, 2013)
]
mykursor.ExecuTemany (zapytanie, val)
# Zobowiązujemy (zapisujemy) rekordy do tabeli
Conn.popełniać()
Drukuj (Mycursor.RowCount, „Wstaw rekordy.")

Linia 17: Tworzymy nasze zapytanie do danych wstawienia.

Linia 18: Tworzymy listę wartości, które chcemy wstawić do tabeli.

Linia 25: Używamy metody ExecuTemany () do wprowadzenia wielu rekordów.

Wyjście: Python ExecuTemany.py

mysql> Wybierz * z filmu;
+----+----------------+------+
|. Id | Nazwa | Rok |
+----+----------------+------+
|. 1 | Bruce Wszechmogący | 2003 |
|. 2 | Kung Fu Panda | 2014 |
|. 3 | Kung Fu Panda | 2014 |
|. 4 | Frozen | 2014 |
|. 5 | Frozen2 | 2020 |
|. 6 | Iron Man | 2013 |
+----+----------------+------+
6 wierszy w zestawie (0.00 s)

Wykonaj wiele zapytań za pomocą funkcji pojedynczej execute ():

Możemy również wykonywać wiele zapytań za pomocą funkcji single execute (). Funkcja execute () akceptuje jeden dodatkowy parametr, wielo. multi = false domyślnie. Jeśli zatrzymamy multi = true, Następnie możemy wykonać zapytanie o wiele SQL za pomocą separatora półkolonu (;).

# Python Execute_Multi.py
#Wportu na bibliotekę
Importuj mysql.złącze
# Tworzenie połączenia
conn = mysql.złącze.łączyć(
host = "localhost",
user = "Sammy",
hasło = "hasło",
baza danych = "DBTest"
)
# Zaimportuj kursor z połączenia (Conn)
MyCursor = Conn.kursor()
# Zapytanie z stylem parametrów formatu
query_1 = "Wybierz * z filmu"
query_2 = 'wstaw do filmu (id, nazwa, rok) wartości ( %s, %s, %s)'
zapytania = [query_1, query_2]
val = (8, „seria”, 2001)
MultiResults = mykursor.wykonać(";".dołącz (zapytania), val, multi = true)
Count = 1
W rezultacie multiresults:
# Wynik jest jak kursor, więc możemy uzyskać dostęp do wszystkich
# atrybuty kursora
print ("query_ 0 - 1:".format (liczba, wynik.oświadczenie))
Jeśli wynik.Z_ROWS:
W rezultacie rzędu:
Drukuj (wiersz)
Count = Count + 1
w przeciwnym razie:
Drukuj („bez wyniku”)
wydrukować()
mykursor.zamknąć()
Conn.zamknąć()

Wyjście: Python Execute_Multi.py

Query_1 - Wybierz * Z filmu:
(1, „Bruce Almighty”, 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 - Wstaw do filmu (ID, Nazwa, Rok) Wartości (8, „Seria”, 2001):
Brak wyników

Linia 23: Utworzyliśmy listę dwóch zapytań.

Linia 28: Podajemy listę zapytań, val i separatora (;) do metody wykonania (). Zmieniamy również wartość wielo Od fałszu do prawdziwego.

W powyższym wyjściu możemy zobaczyć nasze wyniki wielopłaszczyznowej.

Wniosek:

W tym artykule zbadaliśmy metodę Execute (). Widzieliśmy także różne typy metod wykonania (), takie jak metoda execuTemania (). Studiowaliśmy również, jak zapytać przez kursor. Execute () Metoda i różne parametry tej metody. W końcu widzieliśmy również, w jaki sposób możemy zrobić wielokrotność za pomocą metody execute ().

Kod tego artykułu jest dostępny pod linkiem GitHub:
https: // github.com/shekharpandey89/cursor-execute-python