Đây là hoạt động bắt buộc khi bạn muốn tạo các bản ghi vào trong bảng đã tạo.
Ví dụ sau sẽ thực thi lệnh SQL INSERT để tạo một bản ghi vào trong bảng SINHVIEN.
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 INSERT mot ban ghi vao trong database. sql = """INSERT INTO SINHVIEN(HO, TEN, TUOI, GIOITINH, HOCPHI) VALUES ('Nguyen', 'Hoang', 20, 'M', 4000000)""" 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()
Ví dụ trên có thể được viết như sau để tạo các truy vấn SQL hay hơn:
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 INSERT mot ban ghi vao trong database. sql = "INSERT INTO SINHVIEN(HO, \ TEN, TUOI, GIOITINH, HOCPHI) \ VALUES ('%s', '%s', '%d', '%c', '%d' )" % \ ('Nguyen', 'Hoang', 20, 'M', 4000000) 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()
Đoạn code sau là form thực thi khác, tại đây bạn có thể truyền các tham số một cách trực tiếp.
.................................. user_id = "test123" password = "password" con.execute('chen cac gia tri de dang nhap ("%s", "%s")' % \ (user_id, password)) ..................................
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.
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 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.
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 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:
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, bạn sử dụng phương thức close(), có cú pháp như sau:
db.close()
» Tin mới nhất:
» Các tin khác: