Học Lập Trình Với Python

Kết nối MySQL Database trong Python sử dụng PyMySQL

Nhân. Nguyễn

Đăng

-

Bạn có thể tìm kiếm qua : Google | Cốc Cốc | Bing với chủ đề này của Ad's Consulting Live

Danh sách 20 bài học về lập trình Python cơ bản

  1. Giới thiệu về Python
  2. Hướng dẫn cài đặt và cấu hình Python
  3. Hướng dẫn cài đặt và cấu hình Python trên Ubuntu Desktop
  4. Hướng dẫn cài đặt Visual Studio Code
  5. Hướng dẫn cài đặt PyDev cho Eclipse lập trình Python
  6. Quy ước và các phiên bản ngữ pháp trong Python
  7. Hướng dẫn lập trình Python cho người mới bắt đầu
  8. Tra cứu tài liệu Python
  9. Các lệnh rẽ nhánh trong Python
  10. Vòng lặp trong Python
  11. Hướng dẫn sử dụng Python Function
  12. Class và đối tượng trong Python
  13. Thừa kế và đa hình trong Python
  14. Hướng dẫn xử lý ngoại lệ trong Python
  15. Hướng dẫn sử dụng String trong Python
  16. Hướng dẫn sử dụng Python Lists
  17. Hướng dẫn sử dụng Python Tuples
  18. Hướng dẫn sử dụng Python Dictionary
  19. Hướng dẫn sử dụng Date Time trong Python
  20. Kết nối MySQL Database trong Python sử dụng PyMySQL

Lập trình Python nâng cao

Trong bài nào tôi cũng khuyên bạn nên tự đánh từng chữ chứ đừng copy. Nó sẽ giúp bạn nhớ nhiều hơn và biết chỗ nào bạn đang gõ sai

Sử dụng PyMySQL để kết nối database trong Python

PyMySQL là gì?

PyMySQL là một dự án mã nguồn mở với chức năng là để kết nối từ Python vào một cơ sở dữ liệu mà bạn cần. Với cơ sở dữ liệu MySQL bạn cần sử dụng Driver để kết nối được. Trong Python có 3 kiểu Driver như vậy

  1. MySQL/connector for Python : Đây là một thư viện được cung cấp bởi chính cộng đồng MySQL.
  2. MySQLdb : MySQLdb là thư viện giúp kết nối vào MySQL từ Python, nó được viết trên ngôn ngữ C, nó được cung cấp miễn phí và là mã nguồn mở.
  3. PyMySQL : Đây là một thư viện giúp kết nối vào MySQL từ Python, là một thư viện thuần Python. Mục tiêu của PyMySQL là thay thế cho MySQLdb và làm việc trên CPython, PyPy và IronPython.

Bạn có thể xem mã nguồn của nó tại đây: https://github.com/PyMySQL/PyMySQL

Cài đặt PyMySQL

Để cài đặt PyMySQL trên Windows (Hoặc Ubuntu/Linux) bạn cần mở cửa sổ CMD, và thực thi lệnh sau:
Nhập lệnh :

pip install PyMySQL

để tải xuống và cài đặt được nó, nó sẽ tự động cài đặt cho các bạn.

Nếu bạn chưa học đến cơ sở dữ liệu bạn có thể tham khảo bài viết này Làm quen với database cơ sở dữ liệu.

Kết nối MySQL từ Python với PyMySQL

Đoạn code sau đây sẽ giúp bạn kết nối tới CSDL từ Python và truy vấn một bảng có tên là “Department”

[php]
import pymysql.cursors

# Kết nối vào database.
connection = pymysql.connect(host=’localhost’,
user=’root’,
password=’1234′,
db=’simplehr’, # Tên cơ sở dữ liệu
charset=’utf8mb4′,
cursorclass=pymysql.cursors.DictCursor)

print (“connect successful!!”)

try:

with connection.cursor() as cursor:

# SQL
sql = “SELECT Dept_No, Dept_Name FROM Department ”

# Thực thi câu lệnh truy vấn (Execute Query).
cursor.execute(sql)

print (“cursor.description: “, cursor.description)

print()

for row in cursor:
print(row)

finally:
# Đóng kết nối (Close connection).
connection.close()
[/php]

Kết quả trả về sẽ là:

Module tiện ích: Một lời khuyên là bạn nên tạo ra một module tiện ích để tạo một kết nối tới cơ sở dữ liệu. Ở đây tôi tạo một module có tên “myconnutils”, module này định nghĩa hàm getConnection() trả về một connection.

[php]

import pymysql.cursors

# Hàm trả về một connection.
def getConnection():

# Bạn có thể thay đổi các thông số kết nối.
connection = pymysql.connect(host=’192.168.5.129′,
user=’root’,
password=’1234′,
db=’simplehr’,
charset=’utf8mb4′,
cursorclass=pymysql.cursors.DictCursor)
return connection

[/php]

Ví dụ Query:

Ví dụ sau đây truy vấn bảng Employee, Python sử dụng %s như là một “nơi giữ chỗ” (placeholder) cho các tham số, nó không phụ thuộc kiểu của tham số. Ví dụ:

[php]

sql1 = “Insert into Department (Dept_Id, Dept_No, Dept_Name) values (%s, %s, %s) ”

sql2 = “Select * from Employee Where Dept_Id = %s ”

[/php]

[php]

# Sử dụng module tiện ích của bạn.
import myconnutils

connection = myconnutils.getConnection()

print (“Connect successful!”)

sql = “Select Emp_No, Emp_Name, Hire_Date from Employee Where Dept_Id = %s ”

try :
cursor = connection.cursor()

# Thực thi sql và truyền 1 tham số.
cursor.execute(sql, ( 10 ) )

print (“cursor.description: “, cursor.description)

print()

for row in cursor:
print (” ———– “)
print(“Row: “, row)
print (“Emp_No: “, row[“Emp_No”])
print (“Emp_Name: “, row[“Emp_Name”])
print (“Hire_Date: “, row[“Hire_Date”] , type(row[“Hire_Date”]) )

finally:
# Đóng kết nối
connection.close()
[/php]

Ví dụ Insert

[php]

# Sử dụng module tiện ích của bạn.
import myconnutils
import pymysql.cursors

connection = myconnutils.getConnection()

print (“Connect successful!”)

try :
cursor = connection.cursor()

sql = “Select max(Grade) as Max_Grade from Salary_Grade ”
cursor.execute(sql)

# 1 dòng dữ liệu
oneRow = cursor.fetchone()

# Output: {‘Max_Grade’: 4} or {‘Max_Grade’: None}
print (“Row Result: “, oneRow)

grade = 1

if oneRow != None and oneRow[“Max_Grade”] != None:
grade = oneRow[“Max_Grade”] + 1

cursor = connection.cursor()

sql =  “Insert into Salary_Grade (Grade, High_Salary, Low_Salary) ” \
+ ” values (%s, %s, %s) ”

print (“Insert Grade: “, grade)

# Thực thi sql và truyền 3 tham số
cursor.execute(sql, (grade, 2000, 1000 ) )

connection.commit()

finally:
connection.close()

[/php]

Ví dụ Update

[php] # Sử dụng module tiện ích của bạn.
import myconnutils
import pymysql.cursors
import datetime

connection = myconnutils.getConnection()

print (“Connect successful!”)

try :
cursor = connection.cursor()

sql = “Update Employee set Salary = %s, Hire_Date = %s where Emp_Id = %s ”

# Hire_Date
newHireDate = datetime.date(2002, 10, 11)

# Thực thi sql và truyền 3 tham số.
rowCount = cursor.execute(sql, (850, newHireDate, 7369 ) )

connection.commit()

print (“Updated! “, rowCount, ” rows”)

finally:
# Đóng kết nối
connection.close() [/php]

Ví dụ Delete

[php] # Sử dụng module tiện ích của bạn.
import myconnutils

connection = myconnutils.getConnection()

print (“Connect successful!”)

try :
cursor = connection.cursor()

sql = “Delete from Salary_Grade where Grade = %s”

# Thực thi sql và truyền 1 tham số
rowCount = cursor.execute(sql, ( 3 ) )

connection.commit()

print (“Deleted! “, rowCount, ” rows”)

finally:
# Đóng kết nối
connection.close() [/php]

Dưới đây là bài cuối cùng của kiến thức lập trình Python cơ bản. Nếu bạn muốn đi sâu hơn nữa bạn có thể tham khảo một số nâng cao về Python hoặc có thể đọc bài này, có rất nhiều tài liệu về Python nâng cao dành cho bạn.

Nếu còn thắc mắc hoặc góp ý bạn có thể để lại bình luận ở bên dưới.

Tôi viết để lưu trữ và chia sẻ cho bạn đọc những gì tôi học và hiểu được về lập trình và kinh nghiệm của tôi sau những năm tôi đi làm. Vậy nên nhiều bài rất ngắn các bạn đừng trách móc. Xin cảm ơn đã ủng hộ. Kênh Youtube của Nhân Nguyễn

Quảng Cáo
0 0 vote
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments



[]
1 Step 1
Previous
Next

Chủ Đề Nổi Bật

Được Quan Tâm Nhiều Trong Tháng

0
Would love your thoughts, please comment.x
()
x