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ệ
Nội dung chính Hiển thị
Nội dung chính
- 9. 1. Cài đặt MySQLdb
- 9. 2. Connected to MySQL Server
- 9. 3. Connected with charset utf8
- 9. 4. Truy vấn dữ liệu
- 9. 5. Tìm nạp dữ liệu
- 9. 7. Tuyên bố chuẩn bị
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 to 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 đến MySQL Server
Thực hiện chức năng gọi như sau để trả về kết nối
________số 8Nế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 charset utf8
Mặc định kết nối đến máy chủ MySQL là bộ ký tự
import MySQLdb6 nên khi lấy dữ liệu unicode thì hiển thị Tiếng Việt không đúng, bạn phải chọn bộ ký tự là
import MySQLdb7 khi tạo kết nối. Cú pháp như sau
import MySQLdb2
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 MySQLdb3
Ví dụ biến dữ liệu
import MySQLdb8 là. ______09
Mặc định,
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib0 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.dylib1 , 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.dylib2 thì có thể khai báo
import MySQLdb9
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.dylib0 sau khi đã
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 .
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
5 . 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
8 tức là đã lấy hết dữ liệu từ câu truy vấn.sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
9. 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 ']
0. 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
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-python8
Ngạch ra, bạn cũng nên đóng con trỏ khi không còn sử dụng theo ví dụ.
$ sudo pip install MySQL-python9
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 áp dụng nhiều và giúp tăng hiệu quả và 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 ']1 và phương thức
import MySQLdb dbcon = MySQLdb.connect[host = 'localhost', user = 'myusername', passwd = 'mypassword', db = 'mydbname ']2 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 ']1