(+84) 236.3827111 ex. 402

Truy cập cơ sở dữ liệu MySQL trong Python(tt)


Hoạt động đọc trong Python

Hoạt động đọc trên bất cứ Database nào nghĩa là lấy một số thông tin hữu ích từ Database.

Khi kết nối với Databse được thiết lập, bạn có thể tạo một truy vấn vào trong Database này. Bạn có thể sử dụng hoặc phương thức fetchone() để lấy bản ghi đơn hoặc phương thức fetchall() để lấy nhiều giá trị từ một bảng.

  • Hàm fetchone() lấy hàng tiếp theo của một tập kết quả truy vấn. Một tập kết quả là một đối tượng được trả về khi một đối tượng cursor được sử dụng để truy vấn một bảng.

  • Hàm fetchall() lấy tất cả các hàng trong một tập kết quả. Nếu một số hàng đã sẵn sàng được trích từ tập kết quả đó, thì nó thu nhận các hàng còn lại từ tập kết quả.

  • Thuộc tính rowcount là một thuộc tính read-only và trả về số hằng đã bị ảnh hưởng bởi phương thức execute().

Ví dụ sau truy vấn tất cả bản ghi từ bảng SINHVIEN mà có salary lớn hơn 1000:

 

import MySQLdb

# mo ket noi toi Database
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# chuan bi mot doi tuong cursor boi su dung phuong thuc cursor()
cursor = db.cursor()

# Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.
sql = "SELECT * FROM SINHVIEN \
       WHERE HOCPHI > '%d'" % (1000)
try:
   # Thuc thi lenh SQL
   cursor.execute(sql)
   # Lay tat ca cac hang trong list.
   results = cursor.fetchall()
   for row in results:
      ho = row[0]
      ten = row[1]
      tuoi = row[2]
      gioitinh = row[3]
      hocphi = row[4]
      # Bay gio in ket qua
      print "ho=%s,ten=%s,tuoi=%d,gioitinh=%s,hocphi=%d" % \
             (ho, ten, tuoi, gioitinh, hocphi )
except:
   print "Error: khong lay duoc du lieu"

# ngat ket noi voi server
db.close()

Kết quả là:

ho=Nguyen, ten=Hoang, tuoi=20, gioitinh=M, hocphi=4000000

Hoạt động Update trong Python

Hoạt động UPDATE trên bất cứ Database nào nghĩa là để cập nhật một hoặc nhiều bản ghi mà đã có sẵn trong Database.

Thủ tục sau cập nhật tất cả bản ghi có GIOITINH là M. Ở đây, chúng ta tăng tất cả TUOI của male thêm 1 năm.

Ví dụ

 

import MySQLdb

# mo ket noi toi Database
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# chuan bi mot doi tuong cursor boi su dung phuong thuc cursor()
cursor = db.cursor()

# Truy van SQL de UPDATE cac ban ghi
sql = "UPDATE SINHVIEN SET TUOI = TUOI + 1
                          WHERE GIOITINH = '%c'" % ('M')
try:
   # Thuc thi lenh SQL
   cursor.execute(sql)
   # Commit cac thay doi vao trong Database
   db.commit()
except:
   # Rollback trong tinh huong co bat ky error nao
   db.rollback()

# ngat ket noi voi server
db.close()

Hoạt động DELETE trong Python

Hoạt động DELETE là cần thiết khi bạn muốn xóa một số bản ghi từ Database. Dưới đây là thủ tục để xóa tất cả bản ghi từ bảng SINHVIEN với điều kiện là TUOI lớn hơn 20:

Ví dụ

 

import MySQLdb

# mo ket noi toi Database
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# chuan bi mot doi tuong cursor boi su dung phuong thuc cursor()
cursor = db.cursor()

# Chuan bi truy van SQL de DELETE cac ban ghi can thiet
sql = "DELETE FROM SINHVIEN WHERE TUOI > '%d'" % (20)
try:
   # Thuc thi lenh SQL
   cursor.execute(sql)
   # Commit cac thay doi vao trong Database
   db.commit()
except:
   # Rollback trong tinh huong co bat ky error nao
   db.rollback()

# ngat ket noi voi server
db.close()

Ngắt kết nối tới Database trong Python

Để ngắt kết nối tới Database, bạn sử dụng phương thức close(), có cú pháp như sau:

 db.close()