Hướng dẫn python database engine - công cụ cơ sở dữ liệu python

Chương này sẽ giới thiệu khái quát cho bạn về cách truy cập Database bởi sử dụng Python và giới thiệu qua về một số hoạt động cơ bản trên Database như INSERT, UPDATE, DELETE ...

Nội dung chính

  • MySQLdb là gì?
  • Cách cài đặt MySQLdb?
  • Kết nối Database trong Python
  • Tạo bảng dữ liệu trong Python
  • Hoạt động INSERT trong Python
  • mo ket noi toi Database
  • chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]
  • Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.
  • Thuc thi lenh SQL
  • Lay tat ca cac hang trong list.
  • Bay gio in ket qua
  • ngat ket noi voi server
  • mo ket noi toi Database
  • chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]
  • Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.
  • Thuc thi lenh SQL
  • Lay tat ca cac hang trong list.
  • Bay gio in ket qua
  • ngat ket noi voi server
  • mo ket noi toi Database
  • chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]
  • Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.
  • Thuc thi lenh SQL
  • Lay tat ca cac hang trong list.
  • Bay gio in ket qua
  • ngat ket noi voi server

Truy van SQL de UPDATE cac ban ghi

MySQLdb là gì?

Commit cac thay doi vao trong Database

Cách cài đặt MySQLdb?

Kết nối Database trong Python

import MySQLdb

Tạo bảng dữ liệu trong Python

Traceback [most recent call last]:
  File "test.py", line 3, in 
    import MySQLdb
ImportError: No module named MySQLdb

Hoạt động INSERT trong Python

$ gunzip MySQL-python-1.2.2.tar.gz
$ tar -xvf MySQL-python-1.2.2.tar
$ cd MySQL-python-1.2.2
$ python setup.py build
$ python setup.py install

Kết nối Database trong Python

Tạo bảng dữ liệu trong Python

  • Hoạt động INSERT trong Python
  • mo ket noi toi Database
  • chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]
  • Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.
  • Thuc thi lenh SQL
  • Lay tat ca cac hang trong list.

Bay gio in ket qua

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[]

# Thuc thi truy van SQL boi su dung phuong thuc execute[].
cursor.execute["SELECT VERSION[]"]

# Lay mot hang boi su dung phuong thuc fetchone[].
data = cursor.fetchone[]

print "Database version : %s " % data

# ngat ket noi voi server
db.close[]

ngat ket noi voi server

Database version : 5.0.45

Truy van SQL de UPDATE cac ban ghidb, nếu không db được thiết lập là None. Tiếp đó, đối tượng db được sử dụng để tạo đối tượng cursor, mà tiếp đó được sử dụng để thực thi các truy vấn SQL. Cuối cùng, trước khi thoát ra, nó bảo đảm rằng kết nối tới Database được đóng và các resource được giải phóng.

Tạo bảng dữ liệu trong Python

Hoạt động INSERT trong Pythonexecute của đối tượng cursor đã được tạo.

mo ket noi toi Database

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[]

# Xoa bang neu no da ton tai boi su dung phuong thuc execute[].
cursor.execute["DROP TABLE IF EXISTS SINHVIEN"]

# Tao mot bang
sql = """CREATE TABLE SINHVIEN [
         HO  CHAR[20] NOT NULL,
         TEN  CHAR[20],
         TUOI INT,  
         GIOITINH CHAR[1],
         HOCPHI FLOAT ]"""

cursor.execute[sql]

# ngat ket noi voi server
db.close[]

Hoạt động INSERT trong Python

mo ket noi toi Database

chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]

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[]

Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.

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[]

Thuc thi lenh SQL

Lay tat ca cac hang trong list.

Bay gio in ket qua

ngat ket noi voi server


### 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:

Truy van SQL de UPDATE cac ban ghi

mo ket noi toi Database

chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]

chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]

Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.

Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.

Thuc thi lenh SQL

Thuc thi lenh SQL

cursor.execute[sql]

Lay tat ca cac hang trong list.

Bay gio in ket qua

Bay gio in ket qua

  print "ho=%s,ten=%s,tuoi=%d,gioitinh=%s,hocphi=%d" % \
         [ho, ten, tuoi, gioitinh, hocphi ]

ngat ket noi voi server

ngat ket noi voi server

db.close[]

Traceback [most recent call last]:
  File "test.py", line 3, in 
    import MySQLdb
ImportError: No module named MySQLdb
0

Truy van SQL de UPDATE cac ban ghi

Traceback [most recent call last]:
  File "test.py", line 3, in 
    import MySQLdb
ImportError: No module named MySQLdb
1

Truy van SQL de UPDATE cac ban ghi

mo ket noi toi Database

chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]

chuan bi mot doi tuong cursor boi su dung phuong thuc cursor[]

Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.

Chuan bi truy van SQl de INSERT mot ban ghi vao trong database.

Thuc thi lenh SQL

Thuc thi lenh sql

cursor.execute[sql]

Ủy ban CAC Thay doi Tong cơ sở dữ liệu

Db.committee [] Ngoại trừ:

Rollback là tên tốt nhất trên thế giới.

db.rollback[]

NGAT KET NOI VOI Server

db.close[]

Traceback [most recent call last]:
  File "test.py", line 3, in 
    import MySQLdb
ImportError: No module named MySQLdb
2

Nhập MySQLDB

mo ket noi toi toi cơ sở dữ liệu

Db = mysqldb. Kết nối ["localhost" "testDb"]

Con trỏ con trỏ []

Con trỏ = db.cursor []

Tôi không biết phải làm gì.

SQL = "Xóa khỏi Sinhvien trong đó> ' % D'" % [20] Hãy thử:

Thuc thi lenh sql

Con trỏ.execute [SQL]

Ủy ban CAC Thay doi Tong cơ sở dữ liệu

Db.committee [] Ngoại trừ:

Rollback là tên tốt nhất trên thế giới.

db.rollback[]

NGAT KET NOI VOI Server

db.close[]

Traceback [most recent call last]:
  File "test.py", line 3, in 
    import MySQLdb
ImportError: No module named MySQLdb
3

db.close[]

Nhập MySQLDB

Bài Viết Liên Quan

Chủ Đề