Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết nối với MySQL bằng Python

Trong bài viết này, chúng ta sẽ thảo luận về cách kết nối với MySQL bằng Python. Python là một trong những ngôn ngữ lập trình hiệu quả và được sử dụng rộng rãi nhất hiện nay. Cú pháp đơn giản và thanh lịch của nó làm cho nó trở nên lý tưởng cho các lập trình viên mới, trong khi các lập trình viên có kinh nghiệm tận hưởng danh sách phong phú các mô-đun và chức năng có sẵn.

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ, dựa trên SQL mã nguồn mở mạnh mẽ được sử dụng trong nhiều chương trình phần mềm và máy chủ web. Bài viết này nhằm mục đích chỉ ra cách kết nối để sử dụng Python để kết nối với MySQL và thực hiện một số tác vụ cơ bản.

Tại sao sử dụng Python để kết nối với MySQL?

Bạn có thể tự hỏi mình, tại sao thông tin này lại quan trọng? Câu trả lời tốt nhất là, hai thành phần này bổ sung cho nhau một cách xuất sắc! Khả năng thao túng dữ liệu của Pythons bằng cách sử dụng thông tin có nguồn gốc là vô song. MySQL hoặc MariaDB chứa dữ liệu có thể được xử lý bởi Python. Sử dụng hai yếu tố này để tăng cường và bổ sung cho nhau chỉ làm tăng sức mạnh tổng hợp giữa chúng.

Bước 1. Cài đặt Mô-đun trình kết nối

Hãy bắt đầu bằng cách cài đặt mô-đun kết nối. Bước đầu tiên trong việc kết nối MySQL với Python là cài đặt mô-đun Pip Python. Nếu bạn chưa cài đặt pip, bạn có thể tìm thấy hướng dẫn chi tiết để cài đặt pip trong nhiều hệ điều hành trong Cơ sở kiến ​​thức Web lỏng. Sau khi đã cài đặt pip, chúng ta cần cài đặt mysql-connector-python trình điều khiển bằng cách sử dụng lệnh sau.

root@host:~# pip install mysql-connector-python 
Collecting mysql-connector-python
  Downloading mysql_connector_python-8.0.21-cp27-cp27mu-manylinux1_x86_64.whl (16.0 MB)
     |################################| 16.0 MB 13.7 MB/s 
Collecting protobuf>=3.0.0
  Downloading protobuf-3.12.2-cp27-cp27mu-manylinux1_x86_64.whl (1.3 MB)
     |################################| 1.3 MB 17.0 MB/s 
Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf>=3.0.0->mysql-connector-python) (44.1.1)
Collecting six>=1.9
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.21 protobuf-3.12.2 six-1.15.0

Trong ví dụ trên, pip kiểm tra các mô-đun khác mà trình điều khiển mysql-connector-python có thể yêu cầu, sau đó sẽ được cài đặt nếu cần.

Bước 2. Nhập trình kết nối

Bước tiếp theo là nhập mysql-connector-python mô-đun sử dụng lệnh này trong mã của bạn.

import mysql.connector

Lệnh này yêu cầu Python tải và kích hoạt tất cả các chức năng và đối tượng liên quan đến và được sử dụng bởi mô-đun trình kết nối MySQL.

Bước 3. Kết nối MySQL với Máy chủ

Bước tiếp theo của chúng tôi là gọi mysql.connector.connect () để tạo kết nối đến máy chủ.

import mysql.connector

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password=’password’
)

Thông thường, khi giao tiếp với cơ sở dữ liệu MySQL, chúng tôi sử dụng MySQLcursor đối tượng (là một phần của mô-đun mysql-connector-python). Hãy coi đối tượng này như một loại CLI (giao diện dòng lệnh) nơi chúng ta có thể nhập các truy vấn SQL được sử dụng để tương tác với máy chủ. Giao tiếp này được thực hiện bằng cách sử dụng phương thức con trỏ ( cursor =db.cursor () ), gọi đối tượng db mà chúng ta đã tạo ở bước trước với phương thức kết nối:

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

Một đối tượng db.cursor cho phép chúng ta thực thi các truy vấn SQL. Truy vấn này trả về một đối tượng mà chúng ta có thể lặp lại bằng vòng lặp for như vậy.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

cursor.execute("show databases")

for x in cursor:
	print(x)

Có một cơ sở dữ liệu có sẵn đã được thiết lập trong hướng dẫn KB trước đó về Chế độ xem SQL. Nó chứa thông tin về một loạt xe cổ phần hư cấu. Sử dụng tập lệnh trên, kết quả sẽ giống như sau:

# python mysql-test.py 
(u'information_schema',)
(u'races',)
(u'sys',)

Chúng ta có thể sử dụng các lệnh khác với con trỏ hiện tại ( db.cursor () ) để tương tác với cơ sở dữ liệu này. Tại đây, chúng tôi lấy danh sách các bảng và dạng xem từ cùng một cơ sở dữ liệu.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password='password'
)

cursor = db.cursor()


cursor.execute("use races")
cursor.execute("show tables")
for x in cursor:
        print(x)


The output results look like this.

# python mysql-test.py 
(u'all_finishes',)
(u'drivers',)
(u'finishes',)
(u'race_winners',)
(u'races',)
(u'standings_leader',)
(u'tracks',)
Lưu ý:Chữ “u” phía trước kết quả cho biết đó là một chuỗi Unicode.

Chèn dữ liệu bằng đối tượng con trỏ MySQL

Bây giờ chúng ta có thể truy xuất cấu trúc của cơ sở dữ liệu, chúng ta có thể sử dụng đối tượng con trỏ để thực hiện các lệnh khác. Có một phần nơi các trình điều khiển cho mùa đua đã được đưa vào cơ sở dữ liệu. Nó đã được thực hiện bằng cách sử dụng truy vấn SQL này.

insert into drivers (name,car_number) values
  ('Buddy Baker',28),
  ('Dale Earnhardt Jr.',8),
  ('Ricky Rudd',88);

Để chạy cùng một truy vấn SQL này bằng Python, chúng tôi chỉ cần chuyển chuỗi này tới phương thức thực thi của con trỏ của chúng tôi . Một phương pháp tốt để thực hành sử dụng điều này là gán một biến làm văn bản của truy vấn và sau đó gọi thực thi trên đối tượng con trỏ. Bạn cũng phải hướng dẫn mysql thực hiện các thay đổi bằng cách gọi db.commit () như vậy.

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Kết quả:

id name

số xe

1 Buddy Baker

28

2

Dale Earnhardt Jr.

8
3

Ricky Rudd

88

Khi chúng tôi chèn nhiều hàng, giao diện cung cấp phương thức “ thi hành” , cho phép chúng ta tạo một mảng giá trị để chèn và một chuỗi được định dạng đặc biệt với ký hiệu% s thay thế các giá trị từ mảng. Ví dụ này giống với phần chèn trước:

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Các giá trị từ mảng ‘trình điều khiển’ được chuyển lần lượt vào câu lệnh ‘sql’ và sau đó được chuyển vào ‘ executeutemany () '

Sử dụng Chọn

Giống như các câu lệnh SQL khác, chúng ta có thể sử dụng đối tượng con trỏ để thực thi các lựa chọn. Sau khi chọn, con trỏ nhận được một số phương thức mới, bao gồm fetchall () fetchone () . Fetchall () trả về một danh sách tất cả các kết quả. Mỗi kết quả là một danh sách với các cột tương ứng theo thứ tự chúng đã được chọn. Phương thức fetchone () trả về kết quả tiếp theo từ tập kết quả.

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()

for x in results:
        print(x)

Kết quả:

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 88)

Nếu chúng tôi muốn một kết quả tại một thời điểm, chúng tôi có thể sử dụng fetchone ()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Kết quả:

(u'Buddy Baker', 28)

Cập nhật và xóa dữ liệu

Giống như lệnh insert, các lệnh xóa và cập nhật sử dụng một đối tượng con trỏ và phải gọi db.commit (); nếu không, chúng tương tự như các lệnh SQL khác.

Cập nhật :

sql = "update drivers set car_number = 1 where car_number = 88"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 1)

Xóa :

sql = "delete from drivers where car_number = 8"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Ricky Rudd', 1)

Kết luận

Vì vậy, những điều rút ra của bài viết này là gì? Sử dụng Python để tương tác với MySQL là một cách đơn giản và hiệu quả để thao tác dữ liệu theo những cách bổ sung cho từng hệ thống.

Có một vài câu hỏi? Chúng tôi tự hào vì đã trở thành những con người hữu ích nhất trong Hosting ™! Nhân viên hỗ trợ kỹ thuật của chúng tôi luôn sẵn sàng hỗ trợ mọi vấn đề liên quan đến bài viết này, 24 giờ một ngày, 7 ngày một tuần 365 ngày một năm.

Chúng tôi luôn sẵn sàng cung cấp thông qua hệ thống bán vé của chúng tôi tại [email protected], qua điện thoại (theo số 800-580-4986), hoặc qua LiveChat hoặc bất kỳ phương thức nào bạn muốn. Chúng tôi làm việc chăm chỉ cho bạn để bạn có thể thư giãn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tải lên tệp php, cách hạn chế loại tải tệp lên

  2. Tìm mức lương cao thứ 2 theo cách tốt nhất có thể

  3. Cài đặt và sử dụng Bộ công cụ Percona trên Centos 7

  4. Sự khác biệt giữa hai ngày trong MySQL

  5. ROW_NUMBER () trong MySQL