Odosielanie dopytov k databáze v Pythone
Po pripojení k databáze je možné
jej odosielať dopyt. To sa robí pomocou
premennej query, v ktorej
je napísaný SQL dopyt na výpis všetkých
dát z tabuľky users. Túto
premennú treba napísať v bloku s
premennou connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Ďalej napíšeme ešte jednu konštrukciu with
pre prácu s MySQLConnection-objektom,
uloženým v premennej connection.
K tomuto objektu je potrebné postupne
aplikovať špeciálne metódy. Prvou z
nich je metóda cursor, ktorá
z MySQLConnection-objektu vytvorí
CMySQLCursor-objekt. K nemu naopak
sa aplikuje metóda execute, ktorá
zabezpečuje vykonanie SQL dopytu,
odovzdaného jej v parametri:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Ďalej je potrebné extrahovať všetky dáta pomocou
metódy fetchall a zapísať ich do
premennej result. A aby sme vypísali
získané dáta, je potrebné ich prejsť
cez cyklus 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)
Úplný kód bude vyzerať takto:
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 vykonaní kódu sa v konzole vypíšu všetky záznamy vo forme n-tic:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Vypíšte všetky dáta z tabuľky users.