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ąć()
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ąć()
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