Wysyłanie zapytań do bazy danych w Pythonie
Po nawiązaniu połączenia z bazą danych można
do niej wysyłać zapytania. Robi się to za pomocą
zmiennej query, w której
wpisuje się zapytanie SQL wypisujące wszystkie
dane z tabeli users. Tę
zmienną należy wpisać w bloku ze
zmienną connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Następnie wpisujemy jeszcze jedną konstrukcję with
do pracy z obiektem MySQLConnection,
przechowywanym w zmiennej connection.
Do tego obiektu należy kolejno
zastosować specjalne metody. Pierwszą z
nich jest metoda cursor, która
z obiektu MySQLConnection tworzy
obiekt CMySQLCursor. Do niego z kolei
stosuje się metodę execute, która
zapewnia wykonanie zapytania SQL,
przekazanego jej w parametrze:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Następnie trzeba pobrać wszystkie dane za pomocą
metody fetchall i zapisać je do
zmiennej result. Aby wypisać
uzyskane dane, trzeba przepuścić je
przez pętlę for:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
Pełny kod będzie wyglądał tak:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
print(cursor)
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
except Error as e:
print(e)
Po wykonaniu kodu w konsoli wypiszą się wszystkie rekordy w postaci krotek:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Wypisz wszystkie dane z tabeli users.