Điện thoại/ Zalo
0389934723
Bài 3: Get data MySQL qua Python
Bài trước mình đã chia sẻ với mọi người cách thực thi truy vấn đến MySQL qua Python rồi, bài này mình sẽ hướng dẫn mọi người cách lấy ra data khi thực thi các câu truy vấn có trả về dữ liệu.
1, Phương thức fetchone().
Phương thức này có tác dụng lấy ra duy nhất một bản ghi đầu tiên của dữ liệu trả về. Phương thức này sẽ trả về dữ liệu kiểu tuple
.
VD: Mình sẽ thực thi select users trong tables users và in ra bản ghi đầu tiên của dữ liệu trả về.
import pymysql
connection = pymysql.connect('localhost', 'root', '', 'pymysql')
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM users"
result_count = cursor.execute(sql)
print('Data Count: ' + result_count)
print(cursor.fetchone())
finally:
connection.close()
Kết quả trả về:
Data Count: 3
(2, '[email protected]', 'very-secret')
Như các bạn đã thấy thì mặc dù dữ liệu trả về có 3 bản ghi nhưng khi dùng fetchone()
thì nó chỉ get ra duy nhất có 1 bản ghi đầu tiên trong dữ liệu trả về mà thôi.
2, Phương thức fetchmany().
Phương thức fetchmany() có tác dụng fetch dữ liệu trả về của câu query với số lượng bản ghi lấy ra tùy chỉnh. Sử dụng với cú pháp như sau:
cursor.fetchmany(num)
Trong đó, num
là số lượng row bạn muốn fetch ra.
Phương thức này sẽ trả về một list các tuple
.
VD: Cũng với ví dụ trên nhưng mình sẽ lấy ra 2 row đầu tiên của dữ liệu trả về.
import pymysql
connection = pymysql.connect('localhost', 'root', '', 'pymysql')
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM users"
result_count = cursor.execute(sql)
print('Data Count: ' + str(result_count))
print(cursor.fetchmany(2))
finally:
connection.close()
Kết quả trả về:
Data Count: 3
((2, '[email protected]', 'very-secret'), (3, '[email protected]', '123456'))
3, Phương thức fetchall().
Phương thức này có tác dụng fetch ra tất cả data mà câu truy vấn trả về. Phương thức này trả về một list các tuple
.
VD: Cũng với dụ trên mình sẽ fetch ra tất cả dữ liệu mà câu query trả về.
import pymysql
connection = pymysql.connect('localhost', 'root', '', 'pymysql')
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM users"
result_count = cursor.execute(sql)
print('Data Count: ' + str(result_count))
print(cursor.fetchall())
finally:
connection.close()
Kết quả trả về:
Data Count: 3
(
(2, '[email protected]', 'very-secret'),
(3, '[email protected]', '123456'),
(4, '[email protected]', '123456')
)