MySQL là một hệ cơ sở dữ liệu quan hệ phổ biến nhất hiện nay. Rất nhiều ngôn ngữ có thể kết nối đến MySQL và Python cũng không ngoại lệ.
Nội dung chính
- 9.1. Cài đặt MySQLdb
- 9.2. Kết nối đến MySQL Server
- 9.3. Kết nối với charset utf8
- 9.4. Query dữ liệu
- 9.5. Fetch dữ liệu
- 9.7. Prepared Statement
Mặc định Python không có thư viện để kết nối đến MySQL server. Trong phần này, để kết nối đến MySQL Server từ Python, chúng ta sẽ sử dụng module
import MySQLdb1
9.1. Cài đặt MySQLdb
9.2. Kết nối đến MySQL Server
$ sudo pip install MySQL-python
9.3. Kết nối với charset utf8//pypi.python.org/pypi/MySQL
9.4. Query dữ liệu
import MySQLdb
9.5. Fetch dữ liệu
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
9.2. Kết nối đến MySQL Server
9.3. Kết nối với charset utf8
9.4. Query dữ liệu
import MySQLdb dbcon = MySQLdb.connect[host = 'localhost', user = 'myusername', passwd = 'mypassword', db = 'mydbname ']
9.5. Fetch dữ liệutry để bắt lỗi như sau:
import MySQLdb db = None try: db = MySQLdb.connect[host = 'localhost', user = 'root', passwd = 'root', db = 'mysql'] except MySQLdb.Error, e: print "Error %d: %s" % [e.args[0],e.args[1]] sys.exit[1] if db: cur = db.cursor[] cur.execute["SELECT VERSION[]"] ver = cur.fetchone[] print "Database version : %s " % ver
9.3. Kết nối với charset utf8
9.4. Query dữ liệu
... db = MySQLdb.connect[host = 'localhost', user = 'ro ot', passwd = 'root', db = 'test', charset = 'utf8']
9.5. Fetch dữ liệu
9.4. Query dữ liệu
9.5. Fetch dữ liệucursor của MySQLdb. Ví dụ:
import MySQLdb db = MySQLdb.connect[host = 'localhost', user = 'ro ot', passwd = 'root', db = 'mysql']; cursor = db.cursor[] sql = 'SELECT * FROM user' cursor.execute[sql] myusers = cursor.fetchall[]
9.7. Prepared Statement
import MySQLdb8 là:
import MySQLdb9
Mặc định Python không có thư viện để kết nối đến MySQL server. Trong phần này, để kết nối đến MySQL Server từ Python, chúng ta sẽ sử dụng module
import MySQLdb1
import MySQLdb db = MySQLdb.connect[host = 'localhost', user = 'ro ot', passwd = 'root', db = 'mysql'] cursor = db.cursor[MySQLdb.cursors.DictCursor] ...
9.5. Fetch dữ liệu
9.7. Prepared Statementkhi đã
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib4 là
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib5 và
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib6 .
- Mặc định Python không có thư viện để kết nối đến MySQL server. Trong phần này, để kết nối đến MySQL Server từ Python, chúng ta sẽ sử dụng module
import MySQLdb
1: chỉ fetch một dòng dữ liệu. Nếu muốn fetch nhiều dòng dữ liệu thì có thể gọi nhiều lần, mỗi lần sẽ trả về một dòng dữ liệu. Tốt cho trường hợp truy vấn rất nhiều dữ liệu một lúc. Nếu trả vềsudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
8 tức là đã fetch hết dữ liệu từ câu truy vấn. - Cài đặt thông qua
import MySQLdb
2 như sau: - Tham khảo thêm tại: //pypi.python.org/pypi/MySQL
Khai báo module MySQLdb là có thể sử dụng.
import MySQLdb db = MySQLdb.connect[...] db.close[]
Trong một số trường hợp đã cài MySQLdb nhưng import báo lỗi thiếu file
import MySQLdb3 . Nguyên nhân có thể là do hiện tại đường dẫn đến file không tồn tại. Thử tạo symlink hoặc sử dụng câu lệnh sau để tạo symlink từ file
import MySQLdb3 đến thư mục
import MySQLdb5cursor khi không còn sử dụng theo ví dụ:
import MySQLdb db = MySQLdb.connect[...] cursor = db.cursor[] cursor.close[] db.close[]
9.7. Prepared Statement
Mặc định Python không có thư viện để kết nối đến MySQL server. Trong phần này, để kết nối đến MySQL Server từ Python, chúng ta sẽ sử dụng module
import MySQLdb1
import MySQLdb0
Cài đặt thông qua
import MySQLdb2 như sau: