Odesílání dotazů k databázi v Pythonu
Po připojení k databázi jí lze
odesílat dotazy. To se provádí pomocí
proměnné query, ve které
je napsán SQL dotaz pro výpis všech
dat z tabulky users. Tuto
proměnnou je třeba napsat v bloku s
proměnnou connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Dále napíšeme ještě jednu konstrukci with
pro práci s MySQLConnection-objektem,
uloženým v proměnné connection.
K tomuto objektu je třeba postupně
aplikovat speciální metody. První z
nich je metoda cursor, která
z MySQLConnection-objektu vytváří
CMySQLCursor-objekt. K němu naopak
je aplikována metoda execute, která
zajišťuje provedení SQL dotazu,
předaného mu v parametru:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Dále je třeba extrahovat všechna data pomocí
metody fetchall a zapsat je do
proměnné result. A aby bylo možné vypsat
získaná data, je třeba je projít
cyklem 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 vypadat 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 provedení kódu se v konzoli vypíšou všechny záznamy ve formě 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)
Vypište všechna data z tabulky users.