MySQL là một hệ thống cơ sở dữ liệu phổ biến nhất hiện nay. Rất nhiều ngôn ngữ có thể kết nối với MySQL và Python cũng không ngoại lệ
Mặc định Python không có thư viện để kết nối với máy chủ MySQL. Trong phần này, để kết nối với MySQL Server từ Python, chúng ta sẽ sử dụng mô-đun
import MySQLdb1
9. 1. Cài đặt MySQLdb
Settings information through
import MySQLdb2 as after
$ sudo pip install MySQL-python
Tham khảo thêm tại. https. //pypi. con trăn. org/pypi/MySQL
Khai báo mô-đun MySQLdb có thể sử dụng được
import MySQLdb
Trong một số trường hợp đã cài đặt MySQLdb nhưng nhập báo lỗi thiếu tệp
import MySQLdb3. Nguyên nhân có thể được thực hiện tại đường dẫn đến tệp không tồn tại. Cố gắng tạo liên kết tượng trưng hoặc sử dụng câu lệnh sau để tạo liên kết tượng trưng từ tệp
import MySQLdb3 đến thư mục
import MySQLdb5
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
9. 2. Connected to MySQL Server
You need to have a MySQL server is running and for connect to. Trong trường hợp này là localhost nên không cần cấu hình đặc biệt, chỉ cần cung cấp tên người dùng và mật khẩu là có thể kết nối với MySQL Server
Thực hiện chức năng gọi như sau để trả về kết nối
Nếu kết nối không thành công, chương trình sẽ báo lỗi và ngưng chương trình. Cách kết nối an toàn được đưa vào trong thử để 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. Connected with import MySQLdb
6
Mặc định kết nối đến máy chủ MySQL là bộ ký tự
import MySQLdb7 nên khi lấy dữ liệu unicode thì hiển thị Tiếng Việt không đúng, bạn cần chọn bộ ký tự là
import MySQLdb8 khi tạo kết nối. Cú pháp như sau
import MySQLdb3
Tuyển dụng python các vị trí
9. 4. Truy vấn dữ liệu
Để truy vấn dữ liệu [chạy câu lệnh SQL] thì sử dụng con trỏ của MySQLdb. Ví dụ.
import MySQLdb4
Ví dụ biến dữ liệu
import MySQLdb9 is. ______70
Mặc định,
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib1 sẽ trả về mỗi dòng dữ liệu từ MySQL theo kiểu
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib2, tức là không có khóa. Nếu bạn muốn trả lại kiểu
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib3 thì có thể khai báo
$ sudo pip install MySQL-python0
9. 5. Tìm nạp dữ liệu
Có một số cách để tìm nạp thông tin dữ liệu từ
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib1 sau khi đã
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib5 là < .
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib6 và
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib7 .
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
6 . chỉ tìm nạp một dòng dữ liệu. Nếu muốn tìm nạp 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. If returnsudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
9 tức là đã lấy hết dữ liệu từ câu truy vấn.import MySQLdb dbcon = MySQLdb.connect[host = 'localhost', user = 'myusername', passwd = 'mypassword', db = 'mydbname ']
0. tìm nạp toàn bộ truy vấn dữ liệu được từ câu truy vấn và trả về một tuple chứa các dòng dữ liệu. Mỗi phần tử của Tuple có thể là một Tuple khác hoặc là một Dictionary tùy theo cài đặt ở bước lấy con trỏ [Xem phần 9. 4]import MySQLdb dbcon = MySQLdb.connect[host = 'localhost', user = 'myusername', passwd = 'mypassword', db = 'mydbname ']
1. nằm giữa 2 kiểu tìm nạp trên, có thể quy định số lượng hàng trong mỗi lần tìm nạp. Nếu tìm nạp hết thì trả về Tuple rỗng
9. 6. Đóng kết nối
Sau khi kết nối và truy vấn, có thể đóng kết nối theo ví dụ sau
$ sudo pip install MySQL-python9
Ngạch ra, bạn cũng nên đóng con trỏ khi không còn sử dụng theo ví dụ.
import MySQLdb0
9. 7. Tuyên bố chuẩn bị
Câu lệnh chuẩn bị là kỹ thuật tham số hóa các dữ liệu được truyền vào câu truy vấn thay vì nối chuỗi trực tiếp để xây dựng một chuỗi truy vấn dài. Kỹ thuật này được nhiều người áp dụng và giúp tăng hiệu quả cũng như tính bảo mật của câu hỏi. Ví dụ
import MySQLdb0
Mỗi tham số truy vấn sẽ được thay thế bằng
import MySQLdb dbcon = MySQLdb.connect[host = 'localhost', user = 'myusername', passwd = 'mypassword', db = 'mydbname ']2 và phương thức
import MySQLdb dbcon = MySQLdb.connect[host = 'localhost', user = 'myusername', passwd = 'mypassword', db = 'mydbname ']3 sẽ có tham số thứ 2 là một Tuple có giá trị tương ứng với thứ tự xuất hiện của các thành phần
import MySQLdb dbcon = MySQLdb.connect[host = 'localhost', user = 'myusername', passwd = 'mypassword', db = 'mydbname ']2