DANH MỤC: PYTHON & MYSQL

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, 'webmaster@python.org', '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, 'webmaster@python.org', 'very-secret'), (3, 'thanhtaivtt@toidicode.com', '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, 'webmaster@python.org', 'very-secret'),
 (3, 'thanhtaivtt@toidicode.com', '123456'),
 (4, 'thanhtai96nd@gmail.com', '123456')
)

 

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

The best way to learn is to share

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia