Užklausų siuntimas į duomenų bazę Python
Prisijungus prie duomenų bazės prie jos galima
siųsti užklausas. Tai daroma naudojant
kintamąjį query, kuriame
surašoma SQL užklausa visų duomenų išvedimui iš
lentelės users. Šis
kintamasis turi būti surašytas bloke su
kintamuoju connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Toliau surašome dar vieną konstrukciją with
darbo su MySQLConnection-objektui,
saugomam kintamajame connection.
Prie šio objekto reikia nuosekliai
taikyti specialiuosius metodus. Pirmasis iš
jų yra metodas cursor, kuris
iš MySQLConnection-objekto sukuria
CMySQLCursor-objektą. Prie šio savo ruožtu
taikomas metodas execute, kuris
užtikrina SQL užklausos vykdymą,
perduotą jam kaip parametras:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Toliau reikia išgauti visus duomenis naudojant
metodą fetchall ir įrašyti juos į
kintamąjį result. O norint išvesti
gautus duomenis, reikia juos perduoti
per ciklą 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)
Pilnas kodas atrodys taip:
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)
Vykdžius kodą į konsolę bus išvestos visos įrašų kaip tuple:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Išveskite visus duomenis iš lentelės users.