Tietokantakyselyjen lähettäminen Pythonissa
Yhteyden muodostamisen jälkeen tietokantaan voi
lähettää kyselyitä. Tämä tehdään käyttämällä
muuttujaa query, johon
kirjoitetaan SQL-kysely kaikkien
tietojen hakemiseksi taulusta users. Tämä
muuttuja tulee kirjoittaa connection-
muuttujan sisältävään lohkoon:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Seuraavaksi kirjoitamme toisen with-rakenteen
työskentelyä varten MySQLConnection-objektin kanssa,
jota säilytetään connection-muuttujassa.
Tähän objektiin on peräkkäin
sovellettava erikoismenetelmiä. Ensimmäinen niistä
on menetelmä cursor, joka
MySQLConnection-objektista luo
CMySQLCursor-objektin. Siihen puolestaan
sovelletaan menetelmää execute, joka
varmistaa SQL-kyselyn suorittamisen,
joka on välitetty sille parametrina:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Seuraavaksi kaikki tiedot on poimittava käyttämällä
menetelmää fetchall ja kirjoitettava ne
muuttujaan result. Ja saadun datan
tulostamiseksi se on läpikäytävä
for-silmukassa:
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)
Täydellinen koodi näyttää tältä:
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)
Koodin suorittamisen jälkeen konsoliin tulostuu kaikki tietueet tupleina:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Tulosta kaikki tiedot taulusta users.