Gửi truy vấn đến cơ sở dữ liệu trong Python
Sau khi kết nối với cơ sở dữ liệu, bạn có thể
gửi các truy vấn đến nó. Điều này được thực hiện bằng
biến query, trong đó
viết một truy vấn SQL để xuất tất cả
dữ liệu từ bảng users. Biến này
nên được viết trong khối với
biến connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Tiếp theo, chúng ta viết một cấu trúc with nữa
để làm việc với đối tượng MySQLConnection,
được lưu trữ trong biến connection.
Với đối tượng này, cần áp dụng tuần tự
các phương thức đặc biệt. Đầu tiên trong số
chúng là phương thức cursor, phương thức này
từ đối tượng MySQLConnection tạo ra
đối tượng CMySQLCursor. Đến lượt nó, phương thức
execute được áp dụng, phương thức này
đảm bảo thực thi truy vấn SQL,
được truyền cho nó dưới dạng tham số:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Tiếp theo, cần trích xuất tất cả dữ liệu bằng
phương thức fetchall và ghi chúng vào
biến result. Và để xuất
dữ liệu nhận được, cần chạy chúng
qua vòng lặp 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)
Mã đầy đủ sẽ trông như thế này:
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)
Sau khi thực thi mã, tất cả các bản ghi sẽ được xuất ra console dưới dạng các 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)
Xuất tất cả dữ liệu từ bảng users.