Kết nối db trong python là gì?

Hầu hết các ứng dụng cần được tích hợp hoặc kết nối với cơ sở dữ liệu để thực hiện một số hoạt động có liên quan. Phần lớn các dự án yêu cầu kết nối cơ sở dữ liệu để lưu trữ dữ liệu nhất định về người dùng. Cơ sở dữ liệu MySQL có thể được tích hợp với các ứng dụng Python

Để kết nối cơ sở dữ liệu MySQL, chúng tôi cần cài đặt nó trên hệ thống của chúng tôi. Chúng tôi cần Trình kết nối MySQL để thiết lập kết nối với cơ sở dữ liệu. Chúng ta có thể cài đặt MySql Connector bằng lệnh sau

python –m pip install mysql-connector-python

Thao tác này sẽ cài đặt Trình kết nối MySQL được sử dụng để kết nối ứng dụng hoặc dự án python với cơ sở dữ liệu

Tạo kết nối

Trước hết, yêu cầu tạo kết nối với cơ sở dữ liệu. Sau này chúng ta có thể thực hiện các lệnh sql để thực hiện một số thao tác cơ sở dữ liệu. Tên người dùng và mật khẩu của cơ sở dữ liệu sql của bạn được sử dụng

Ví dụ

import mysql.connector

mydatabase=mysql.connector.connect[
   host="localhost",
   user="your_user_name",
   password="your_password"
   database=”database_name”
]

Kết nối với cơ sở dữ liệu được thực hiện. Tên cơ sở dữ liệu được bao gồm trong connect[] khi bạn cần kết nối với một cơ sở dữ liệu cụ thể. Bây giờ, bạn có thể thực hiện các lệnh sql để thực hiện các thao tác với cơ sở dữ liệu

Tạo đối tượng con trỏ

Đối tượng con trỏ được tạo bằng hàm cursor[]. Đối tượng con trỏ rất quan trọng để thực hiện các truy vấn cơ sở dữ liệu

cursor_name=connection_name.cursor[]

Ví dụ

import mysql.connector

mydatabase=mysql.connector.connect[
   host="localhost",
   user="your_user_name",
   password="your_password"
   database=”database_name”
]
mycsr=mydatabase.cursor[]

Bây giờ, kết nối được thiết lập và đối tượng con trỏ được tạo. Bây giờ chúng ta có thể thực hiện bất kỳ truy vấn SQL nào trên cơ sở dữ liệu này bằng cách sử dụng hàm exec[]

Tiêu chuẩn Python cho giao diện cơ sở dữ liệu là Python DB-API. Hầu hết các giao diện cơ sở dữ liệu Python đều tuân thủ tiêu chuẩn này

Bạn có thể chọn cơ sở dữ liệu phù hợp cho ứng dụng của mình. API cơ sở dữ liệu Python hỗ trợ nhiều loại máy chủ cơ sở dữ liệu như –

  • GadFly
  • mSQL
  • mysql
  • PostgreSQL
  • Microsoft SQL Server 2000
  • Informix
  • liên cơ sở
  • tiên tri
  • Sybase

Dưới đây là danh sách các giao diện cơ sở dữ liệu Python có sẵn. Giao diện và API cơ sở dữ liệu Python. Bạn phải tải xuống mô-đun API DB riêng cho từng cơ sở dữ liệu bạn cần truy cập. Ví dụ: nếu bạn cần truy cập cơ sở dữ liệu Oracle cũng như cơ sở dữ liệu MySQL, bạn phải tải xuống cả mô-đun cơ sở dữ liệu Oracle và MySQL

API DB cung cấp một tiêu chuẩn tối thiểu để làm việc với cơ sở dữ liệu bằng cấu trúc và cú pháp Python bất cứ khi nào có thể. API này bao gồm những điều sau đây -

  • Nhập mô-đun API
  • Nhận kết nối với cơ sở dữ liệu
  • Phát hành các câu lệnh SQL và các thủ tục được lưu trữ
  • Đóng kết nối

Chúng ta sẽ tìm hiểu tất cả các khái niệm khi sử dụng MySQL, vì vậy hãy nói về mô-đun MySQLdb

MySQLdb là gì?

MySQLdb là giao diện để kết nối với máy chủ cơ sở dữ liệu MySQL từ Python. Nó triển khai API cơ sở dữ liệu Python v2. 0 và được xây dựng dựa trên MySQL C API

Làm cách nào để cài đặt MySQLdb?

Trước khi tiếp tục, bạn đảm bảo rằng bạn đã cài đặt MySQLdb trên máy của mình. Chỉ cần nhập nội dung sau vào tập lệnh Python của bạn và thực thi nó -

#!/usr/bin/python

import MySQLdb

Nếu nó tạo ra kết quả như sau, thì điều đó có nghĩa là mô-đun MySQLdb chưa được cài đặt –

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

Để cài đặt mô-đun MySQLdb, hãy sử dụng lệnh sau -

For Ubuntu, use the following command -
$ sudo apt-get install python-pip python-dev libmysqlclient-dev
For Fedora, use the following command -
$ sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc
For Python command prompt, use the following command -
pip install MySQL-python

Lưu ý - Đảm bảo rằng bạn có quyền root để cài đặt mô-đun trên

kết nối cơ sở dữ liệu

Trước khi kết nối với cơ sở dữ liệu MySQL, hãy đảm bảo những điều sau đây –

  • Bạn đã tạo một cơ sở dữ liệu TESTDB

  • Bạn đã tạo một bảng NHÂN VIÊN trong TESTDB

  • Bảng này có các trường FIRST_NAME, LAST_NAME, TUỔI, GIỚI TÍNH và THU NHẬP

  • ID người dùng "testuser" và mật khẩu "test123" được đặt để truy cập TESTDB

  • Mô-đun Python MySQLdb được cài đặt đúng trên máy của bạn

  • Bạn đã xem qua hướng dẫn về MySQL để hiểu Cơ bản về MySQL

Ví dụ

Sau đây là ví dụ kết nối với cơ sở dữ liệu MySQL "TESTDB"

#!/usr/bin/python

import MySQLdb

# Open database connection
db = MySQLdb.connect["localhost","testuser","test123","TESTDB" ]

# prepare a cursor object using cursor[] method
cursor = db.cursor[]

# execute SQL query using execute[] method.
cursor.execute["SELECT VERSION[]"]

# Fetch a single row using fetchone[] method.
data = cursor.fetchone[]
print "Database version : %s " % data

# disconnect from server
db.close[]

Trong khi chạy tập lệnh này, nó tạo ra kết quả sau trong máy Linux của tôi

________số 8

Nếu kết nối được thiết lập với nguồn dữ liệu, thì Đối tượng kết nối được trả về và lưu vào db để sử dụng tiếp, nếu không thì db được đặt thành Không có. Tiếp theo, đối tượng db được sử dụng để tạo đối tượng con trỏ, đối tượng này được sử dụng để thực hiện các truy vấn SQL. Cuối cùng, trước khi ra mắt, nó đảm bảo rằng kết nối cơ sở dữ liệu đã được đóng và tài nguyên được giải phóng

Tạo bảng cơ sở dữ liệu

Khi kết nối cơ sở dữ liệu được thiết lập, chúng tôi đã sẵn sàng để tạo bảng hoặc bản ghi vào bảng cơ sở dữ liệu bằng cách sử dụng phương thức thực thi của con trỏ đã tạo

Ví dụ

Hãy để chúng tôi tạo bảng Cơ sở dữ liệu NHÂN VIÊN -

#!/usr/bin/python

import MySQLdb

# Open database connection
db = MySQLdb.connect["localhost","testuser","test123","TESTDB" ]

# prepare a cursor object using cursor[] method
cursor = db.cursor[]

# Drop table if it already exist using execute[] method.
cursor.execute["DROP TABLE IF EXISTS EMPLOYEE"]

# Create table as per requirement
sql = """CREATE TABLE EMPLOYEE [
         FIRST_NAME  CHAR[20] NOT NULL,
         LAST_NAME  CHAR[20],
         AGE INT,  
         SEX CHAR[1],
         INCOME FLOAT ]"""

cursor.execute[sql]

# disconnect from server
db.close[]

thao tác CHÈN

Nó được yêu cầu khi bạn muốn tạo các bản ghi của mình vào một bảng cơ sở dữ liệu

Ví dụ

Ví dụ sau, thực thi câu lệnh SQL INSERT để tạo một bản ghi trong bảng EMPLOYEE −

import mysql.connector

mydatabase=mysql.connector.connect[
   host="localhost",
   user="your_user_name",
   password="your_password"
   database=”database_name”
]
0

Ví dụ trên có thể được viết như sau để tạo các truy vấn SQL động -

import mysql.connector

mydatabase=mysql.connector.connect[
   host="localhost",
   user="your_user_name",
   password="your_password"
   database=”database_name”
]
1

Ví dụ

Đoạn mã sau là một hình thức thực thi khác mà bạn có thể truyền tham số trực tiếp -

import mysql.connector

mydatabase=mysql.connector.connect[
   host="localhost",
   user="your_user_name",
   password="your_password"
   database=”database_name”
]
2

Thao tác ĐỌC

Thao tác READ trên bất kỳ cơ sở dữ liệu nào có nghĩa là lấy một số thông tin hữu ích từ cơ sở dữ liệu

Khi kết nối cơ sở dữ liệu của chúng tôi được thiết lập, bạn đã sẵn sàng thực hiện truy vấn vào cơ sở dữ liệu này. Bạn có thể sử dụng phương thức fetchone[] để tìm nạp một bản ghi hoặc phương thức fetchall[] để tìm nạp nhiều giá trị từ một bảng cơ sở dữ liệu

  • fetchone[] - Nó tìm nạp hàng tiếp theo của tập kết quả truy vấn. Tập kết quả là một đối tượng được trả về khi một đối tượng con trỏ được sử dụng để truy vấn một bảng

  • fetchall[] - Nó tìm nạp tất cả các hàng trong một tập hợp kết quả. Nếu một số hàng đã được trích xuất từ ​​tập kết quả, thì nó sẽ truy xuất các hàng còn lại từ tập kết quả

  • rowcount − Đây là thuộc tính chỉ đọc và trả về số hàng bị ảnh hưởng bởi phương thức exec[]

Ví dụ

Thủ tục sau đây truy vấn tất cả các bản ghi từ bảng EMPLOYEE có mức lương lớn hơn 1000 -

import mysql.connector

mydatabase=mysql.connector.connect[
   host="localhost",
   user="your_user_name",
   password="your_password"
   database=”database_name”
]
3

Điều này sẽ tạo ra kết quả sau -

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

Hoạt động cập nhật

CẬP NHẬT Thao tác trên bất kỳ cơ sở dữ liệu nào có nghĩa là cập nhật một hoặc nhiều bản ghi đã có sẵn trong cơ sở dữ liệu

Quy trình sau đây cập nhật tất cả các bản ghi có SEX là 'M'. Ở đây, chúng tôi tăng TUỔI của tất cả nam giới thêm một năm

Ví dụ

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

Thao tác XÓA

Thao tác XÓA được yêu cầu khi bạn muốn xóa một số bản ghi khỏi cơ sở dữ liệu của mình. Sau đây là quy trình xóa tất cả các bản ghi khỏi EMPLOYEE trong đó TUỔI lớn hơn 20 −

Ví dụ

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

Thực hiện giao dịch

Giao dịch là một cơ chế đảm bảo tính nhất quán của dữ liệu. Giao dịch có bốn thuộc tính sau -

  • Tính nguyên tử - Giao dịch hoàn tất hoặc không có gì xảy ra

  • Tính nhất quán - Một giao dịch phải bắt đầu ở trạng thái nhất quán và để hệ thống ở trạng thái nhất quán

  • Cách ly - Kết quả trung gian của giao dịch không hiển thị bên ngoài giao dịch hiện tại

  • Độ bền - Sau khi giao dịch được thực hiện, các hiệu ứng vẫn tồn tại, ngay cả sau khi hệ thống bị lỗi

API cơ sở dữ liệu Python 2. 0 cung cấp hai phương thức để cam kết hoặc khôi phục giao dịch

Ví dụ

Bạn đã biết cách thực hiện giao dịch. Đây lại là một ví dụ tương tự -

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

Hoạt động CAM KẾT

Cam kết là thao tác đưa ra tín hiệu xanh để cơ sở dữ liệu hoàn tất các thay đổi và sau thao tác này, không có thay đổi nào có thể được hoàn nguyên

Đây là một ví dụ đơn giản để gọi phương thức cam kết

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

Thao tác QUAY LẠI

Nếu bạn không hài lòng với một hoặc nhiều thay đổi và bạn muốn hoàn nguyên những thay đổi đó, hãy sử dụng phương thức rollback[]

Đây là một ví dụ đơn giản để gọi phương thức rollback[]

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

Ngắt kết nối cơ sở dữ liệu

Để ngắt kết nối Cơ sở dữ liệu, hãy sử dụng phương thức close[]

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

Nếu kết nối tới cơ sở dữ liệu bị đóng bởi người dùng bằng phương thức close[], mọi giao dịch chưa xử lý sẽ được DB khôi phục. Tuy nhiên, thay vì phụ thuộc vào bất kỳ chi tiết triển khai cấp thấp hơn nào của DB, ứng dụng của bạn sẽ tốt hơn nếu gọi cam kết hoặc khôi phục một cách rõ ràng

Xử lý lỗi

Có nhiều nguồn lỗi. Một vài ví dụ là lỗi cú pháp trong câu lệnh SQL được thực thi, lỗi kết nối hoặc gọi phương thức tìm nạp cho một xử lý câu lệnh đã bị hủy hoặc đã kết thúc

API DB xác định một số lỗi phải tồn tại trong mỗi mô-đun cơ sở dữ liệu. Bảng sau đây liệt kê những ngoại lệ này

Sr. Không. Ngoại lệ & Mô tả1

Cảnh báo

Được sử dụng cho các vấn đề không nghiêm trọng. Phải phân lớp StandardError

2

Lỗi

Lớp cơ sở cho các lỗi. Phải phân lớp StandardError

3

Lỗi giao diện

Được sử dụng cho các lỗi trong mô-đun cơ sở dữ liệu, không phải chính cơ sở dữ liệu. Phải phân lớp Lỗi

4

cơ sở dữ liệulỗi

Được sử dụng cho các lỗi trong cơ sở dữ liệu. Phải phân lớp Lỗi

5

Lỗi dữ liệu

Lớp con của DatabaseError đề cập đến lỗi trong dữ liệu

6

lỗi hoạt động

Lớp con của DatabaseError đề cập đến các lỗi như mất kết nối với cơ sở dữ liệu. Những lỗi này thường nằm ngoài tầm kiểm soát của Python scripter

7

Tính toàn vẹnLỗi

Lớp con của Lỗi cơ sở dữ liệu cho các tình huống có thể làm hỏng tính toàn vẹn của quan hệ, chẳng hạn như các ràng buộc về tính duy nhất hoặc khóa ngoại

8

Lỗi bên trong

Lớp con của DatabaseError đề cập đến các lỗi bên trong mô-đun cơ sở dữ liệu, chẳng hạn như con trỏ không còn hoạt động

9

Lỗi lập trình

Lớp con của DatabaseError đề cập đến các lỗi như tên bảng không hợp lệ và những thứ khác có thể đổ lỗi cho bạn một cách an toàn

10

Không được hỗ trợLỗi

Lớp con của DatabaseError đề cập đến việc cố gắng gọi chức năng không được hỗ trợ

Các tập lệnh Python của bạn sẽ xử lý các lỗi này, nhưng trước khi sử dụng bất kỳ ngoại lệ nào ở trên, hãy đảm bảo rằng MySQLdb của bạn có hỗ trợ cho ngoại lệ đó. Bạn có thể biết thêm thông tin về chúng bằng cách đọc DB API 2. 0 đặc điểm kỹ thuật

Kết nối cơ sở dữ liệu Python là gì?

Để tạo kết nối giữa cơ sở dữ liệu MySQL và Python, phương thức connect[] của mysql. mô-đun trình kết nối được sử dụng . Chúng tôi chuyển các chi tiết cơ sở dữ liệu như Tên máy chủ, tên người dùng và mật khẩu trong lệnh gọi phương thức, sau đó phương thức trả về đối tượng kết nối.

Làm cách nào để kiểm tra kết nối cơ sở dữ liệu trong Python?

Các đối số cần thiết để kết nối .
Cài đặt mô-đun trình kết nối MySQL. Sử dụng lệnh pip để cài đặt trình kết nối MySQL Python. .
Nhập mô-đun trình kết nối MySQL. Nhập bằng mysql nhập. .
Sử dụng phương thức connect[]. .
Sử dụng phương thức con trỏ []. .
Sử dụng phương thức exec[]. .
Trích xuất kết quả bằng cách sử dụng hàm tìm nạp [].
Đóng con trỏ và các đối tượng kết nối

Nó có nghĩa là gì để kết nối với cơ sở dữ liệu?

Kết nối cơ sở dữ liệu là một phiên làm việc, được mở bởi chương trình để giao tiếp với một máy chủ cơ sở dữ liệu cụ thể, nhằm thực thi các câu lệnh SQL với tư cách là một người dùng cụ thể.

Làm cách nào để kết nối cơ sở dữ liệu trong Python từng bước?

Cách kết nối Cơ sở dữ liệu bằng Python .
Cài đặt trình điều khiển MySQL
Tạo đối tượng kết nối
Tạo đối tượng con trỏ
Thực hiện truy vấn

Chủ Đề