Con trỏ mysql cho

Bài trước mình đã giới thiệu với mọi người thao tác đầy đủ CRUD trên MySQL qua Python rồi, tiếp tục bài này mình sẽ hướng dẫn mọi người cách gọi thủ tục trong MySQL bằng Python

Để gọi là thủ tục thì trong cơ sở dữ liệu của bạn cần có thủ tục trước đó, ở đây mình sẽ tạo ra một thủ tục có tên là

import pymysql

# Connect to the database
connection = pymysql.connect('localhost', 'root', '')

try:
    with connection.cursor() as cursor:
# to do
finally:
    # close connection
    connection.close()
0 để lấy ra tất cả người dùng có trong bảng người dùng

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `get_all_user` ()  NO SQL
SELECT *  FROM users$$

DELIMITER ;

Tiếp đó để gọi là thủ tục thì mọi người đều có thể sử dụng một trong hai cách sau

1, Sử dụng phương thức thực thi()

Đối với cách này thì mọi sự vẫn thực hiện như bình thường đó là truyền cú pháp gọi thủ tục vào trong phương thức

import pymysql

# Connect to the database
connection = pymysql.connect('localhost', 'root', '')

try:
    with connection.cursor() as cursor:
# to do
finally:
    # close connection
    connection.close()
1

Bài trước mình đã hướng dẫn mọi người cách cài đặt và kết nối Python với MySQL rồi. Bài này mình sẽ hướng dẫn mọi người cách thực hiện truy vấn MySQL trên Python

Trong gói PyMSQL mọi thao tác, tác động đến MySQL đều nằm trong đối tượng

import pymysql

# Connect to the database
connection = pymysql.connect('localhost', 'root', '')

try:
    with connection.cursor() as cursor:
# to do
finally:
    # close connection
    connection.close()
2, chính vì vậy sau khi kết nối thành công đến MySQL thì chúng ta sẽ chỉ tập chung vào
import pymysql

# Connect to the database
connection = pymysql.connect('localhost', 'root', '')

try:
    with connection.cursor() as cursor:
# to do
finally:
    # close connection
    connection.close()
3 thôi

Hơn nữa để phù hợp với nguyên tắc mở-đóng thì mình sẽ tận dụng lợi thế đặc biệt của thử bắt để có thể tự động đóng kết nối khi không sử dụng nữa. Bằng cách chọn phương thức

cursor.execute(query, params)
0 vào
cursor.execute(query, params)
1

VD

import pymysql

# Connect to the database
connection = pymysql.connect('localhost', 'root', '')

try:
    with connection.cursor() as cursor:
# to do
finally:
    # close connection
    connection.close()

1, Phương thức thực thi()

Phương thức

cursor.execute(query, params)
2 có tác dụng công thức thi truy vấn MySQL. use with cú pháp

cursor.execute(query, params)

in which

  • cursor.execute(query, params)
    3 là câu hỏi nội dung mà bạn muốn thực thi trên MySQL
  • cursor.execute(query, params)
    4 là một
    cursor.execute(query, params)
    5,
    cursor.execute(query, params)
    6,
    cursor.execute(query, params)
    7 chứa các tham số mà bạn muốn phân tích thành câu
    cursor.execute(query, params)
    3. The number of this can may bỏ trống

Hàm này sẽ trả về số dòng dữ liệu (hàng) bị ảnh hưởng bởi câu truy vấn

VD. Mình sẽ tạo cơ sở dữ liệu có tên 

cursor.execute(query, params)
9 bằng Python

cursor.execute(query, params)
3

Nếu như kết quả trả về là 1 thì bạn đã tạo thành công cơ sở dữ liệu

2, Phương thức execmany(),

Phương thức này về cú pháp thì tương tự như phương thức

cursor.execute(query, params)
2, chỉ khác là nó có khả năng ảnh hưởng đến nhiều dòng dữ liệu trên 1 câu truy vấn

cú pháp

cursor.execute(query, params)
5

Các tham số và kết quả trả về giống như phương thức

cursor.execute(query, params)
2

VD. Mình sẽ tạo 1 bảng trong MySQL qua phương thức

cursor.execute(query, params)
32

cursor.execute(query, params)
8

3, Phương thức commit()

Do default, connection is not auto commit change change, you should be used by

cursor.execute(query, params)
33 method to done commit data when have change

Chú ý. Phương thức

cursor.execute(query, params)
33 này nằm trong kết nối đối tượng.

VD. Mình sẽ thực hiện việc chèn dữ liệu vào bảng

cursor.execute(query, params)
35 mà mình vừa tạo ở trên

cursor.execute(query, params)
2

4, Phương thức autocommit()

Để không phải lúc nào cũng phải sử dụng phương thức 

cursor.execute(query, params)
33 sau khi thực hiện các câu lệnh truy vấn làm thay đổi dữ liệu trong MySQL, các bạn có thể sử dụng phương thức
cursor.execute(query, params)
37 để bật tắt chế độ tự động cam kết

Chú ý. Phương thức

cursor.execute(query, params)
37 này nằm trong kết nối đối tượng. Và nếu như bạn đang làm việc với giao dịch thì nên tắt chế độ này đi, để không ảnh hưởng đến dữ liệu.

cú pháp

cursor.execute(query, params)
6

in which.

cursor.execute(query, params)
39 is type
cursor.execute(query, params)
50 set value autocommit, Default is
cursor.execute(query, params)
51 - is not at auto commit mode