Pošiljanje poizvedb do podatkovne baze v Pythonu
Po povezavi z bazo podatkov ji lahko
pošljemo poizvedbe. To naredimo s pomočjo
spremenljivke query, v kateri
zapišemo SQL poizvedbo za prikaz vseh
podatkov iz tabele users. To
spremenljivko moramo zapisati znotraj bloka s
spremenljivko connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Nato zapišemo še eno konstrukcijo with
za delo z MySQLConnection-objektom,
shranjenim v spremenljivki connection.
Na ta objekt moramo zaporedoma
uporabiti posebne metode. Prva med njimi
je metoda cursor, ki
iz MySQLConnection-objekta ustvari
CMySQLCursor-objekt. Nato na slednjega
uporabimo metodo execute, ki
izvede SQL poizvedbo,
ki ji je posredovana kot parameter:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Nato moramo pridobiti vse podatke s pomočjo
metode fetchall in jih shraniti v
spremenljivko result. In za prikaz
pridobljenih podatkov jih moramo
obdelati z zanko 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)
Popolna koda bo videti takole:
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 izvedbi kode se bodo v konzolo izpisali vsi zapisi v obliki n-terk:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Izpišite vse podatke iz tabele users.