Αποστολή Ερωτημάτων στη Βάση Δεδομένων στην Python
Μετά τη σύνδεση με τη βάση δεδομένων, μπορούμε
να της στείλουμε ερωτήματα. Αυτό γίνεται με τη βοήθεια
της μεταβλητής query, στην οποία
καθορίζεται το SQL ερώτημα για την εμφάνιση όλων
των δεδομένων από τον πίνακα users. Αυτή τη
μεταβλητή θα πρέπει να την καθορίσουμε στο μπλοκ με τη
μεταβλητή connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Στη συνέχεια, καθορίζουμε μια ακόμη κατασκευή with
για εργασία με το αντικείμενο MySQLConnection,
που αποθηκεύεται στη μεταβλητή connection.
Σε αυτό το αντικείμενο πρέπει να εφαρμόσουμε διαδοχικά
ειδικές μεθόδους. Η πρώτη από αυτές είναι η μέθοδος cursor, η οποία
από το αντικείμενο MySQLConnection δημιουργεί ένα
αντικείμενο CMySQLCursor. Σ' αυτό, με τη σειρά του,
εφαρμόζεται η μέθοδος execute, η οποία
εξασφαλίζει την εκτέλεση του SQL ερωτήματος,
που της περνάται ως παράμετρος:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Στη συνέχεια, πρέπει να ανακτήσουμε όλα τα δεδομένα με τη βοήθεια
της μεθόδου fetchall και να τα αποθηκεύσουμε σε μια
μεταβλητή result. Και για να εμφανίσουμε
τα δεδομένα που λήφθηκαν, πρέπει να τα περάσουμε
μέσα από έναν βρόχο 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)
Ο πλήρης κώδικας θα μοιάζει με αυτόν:
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)
Μετά την εκτέλεση του κώδικα, στην κονσόλα θα εμφανιστούν όλες οι εγγραφές ως πλειάδες (tuples):
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Εμφανίστε όλα τα δεδομένα από τον πίνακα users.