Adatbázis-lekérdezések küldése Pythonban
Az adatbázishoz való csatlakozás után
lehetőség van lekérdezések küldésére. Ez a
query változóval történik, amelyben
egy SQL-lekérdezés található a users
tábla összes adatának megjelenítéséhez. Ezt
a változót a connection változót
tartalmazó blokkban kell elhelyezni:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Ezután írunk egy másik with konstrukciót
a MySQLConnection-objektummal való munkavégzéshez,
amely a connection változóban tárolódik.
Erre az objektumra speciális metódusokat kell
szekvenciálisan alkalmazni. Az első közülük a
cursor metódus, amely a MySQLConnection-objektumból
létrehoz egy CMySQLCursor-objektumot. Erre viszont
alkalmazzuk a execute metódust, amely
biztosítja a paraméterként átadott SQL-lekérdezés
végrehajtását:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Ezután ki kell nyerni az összes adatot a
fetchall metódussal, és el kell menteni
azokat a result változóba. Az elkapott
adatok megjelenítéséhez pedig egy for
cikluson kell átfuttatni őket:
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)
A teljes kód így fog kinézni:
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)
A kód végrehajtása után a konzolra kiíródnak minden rekord tuple-ök formájában:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Jelenítsd meg a users tábla összes adatát.