HomeLập trìnhPythonCách sử dụng...

Cách sử dụng PostgreSQL trong Python


Có nhiều loại cơ sở dữ liệu khác nhau được sử dụng ngày nay. Chúng tôi có cơ sở dữ liệu tập trung, cơ sở dữ liệu thương mại, cơ sở dữ liệu đám mây, cơ sở dữ liệu phân tán, cơ sở dữ liệu người dùng cuối, cơ sở dữ liệu NoSQL, cơ sở dữ liệu quan hệ, v.v.

Bài viết này sẽ tập trung vào một ví dụ về cơ sở dữ liệu quan hệ (PostgreSQL) và cách truy vấn dữ liệu từ đó. Các ví dụ khác về cơ sở dữ liệu quan hệ bao gồm MySQL, MariaDB và SQLite.

Trong hướng dẫn này, bạn sẽ học cách cài đặt, kết nối và cuối cùng là truy vấn cơ sở dữ liệu PostgreSQL bằng Python.

Để bắt đầu, hãy bắt đầu bằng cách tìm hiểu thêm một chút về PostgreSQL.

PostgreSQL là gì?

Một trong những cơ sở dữ liệu quan hệ mã nguồn mở nổi tiếng nhất là PostgreSQL. Nó được sử dụng bởi các nhà phát triển và doanh nghiệp thuộc mọi quy mô trên toàn thế giới.

Về mức độ phổ biến toàn cầu, PostgreSQL được DB-Engines xếp hạng thứ tư và mức độ phổ biến của nó đang tăng lên. Điều này không có gì đáng ngạc nhiên, vì nhiều ứng dụng web và di động, cũng như các công cụ phân tích, sử dụng cơ sở dữ liệu PostgreSQL.

PostgreSQL cũng có một hệ sinh thái mạnh mẽ với nhiều lựa chọn tiện ích bổ sung và tiện ích mở rộng hoạt động tốt với cơ sở dữ liệu chính. Vì những lý do này, PostgreSQL là một lựa chọn tuyệt vời cho dù bạn muốn tạo giải pháp cơ sở dữ liệu tùy chỉnh của riêng mình hay cần cơ sở dữ liệu giao dịch hoặc phân tích.

Bây giờ bạn đã biết PostgreSQL là gì, hãy thảo luận về cách kết nối với cơ sở dữ liệu bằng Python.

Bắt đầu

Chúng ta phải sử dụng thư viện trình kết nối cơ sở dữ liệu để kết nối với phiên bản cơ sở dữ liệu PostgreSQL từ tập lệnh Python của chúng ta. Chúng ta có thể chọn từ nhiều lựa chọn thay thế trong Python, nhưng Tâm lý học2 là loại nổi tiếng nhất và được sử dụng rộng rãi.

Đọc thêm  Cách tải xuống và cắt MP3 từ YouTube bằng Python

Có những thư viện thay thế được xây dựng hoàn toàn bằng Python, chẳng hạn như pg8000py-postgresqlnhưng chúng tôi sẽ sử dụng Psycopg2 ở đây.

Psycopg2 là gì?

Thư viện Psycopg2 sử dụng ngôn ngữ lập trình C làm trình bao bọc xung quanh libpq Thư viện PostgreSQL để hỗ trợ các tiêu chuẩn Python DB API 2.0. Việc triển khai C của Psycopg2 làm cho nó cực kỳ nhanh chóng và hiệu quả.

Sử dụng truy vấn SQL, chúng tôi có thể sử dụng Psycopg2 để lấy một hoặc nhiều hàng từ cơ sở dữ liệu. Với thư viện này, chúng ta cũng có thể chèn dữ liệu vào cơ sở dữ liệu bằng nhiều phương pháp chèn đơn lẻ hoặc hàng loạt.

Thư viện giống như SQL (Ngôn ngữ truy vấn có cấu trúc) và nó thực hiện tất cả các tác vụ và thao tác mà một ngôn ngữ truy vấn có thể thực hiện. Nó thân thiện với cả Unicode và Python 3, và nó cũng có sự an toàn của luồng (cùng một kết nối được chia sẻ bởi nhiều luồng).

Nó được tạo ra để chạy các chương trình đa luồng cao, thường xuyên tạo và xóa nhiều con trỏ và thực hiện nhiều thao tác đồng thời. CHÈN hoặc CẬP NHẬT. Các tính năng của Psycopg2 bao gồm con trỏ phía máy khách và phía máy chủ, giao tiếp không đồng bộ và thông báo.

Cách cài đặt Psycopg2

Trước tiên chúng ta phải cài đặt Psycopg2 để sử dụng nó. Chúng tôi có thể cài đặt nó thông qua thiết bị đầu cuối hoặc dấu nhắc lệnh bằng cách sử dụng pip.

#installation

pip install psycopg2
pip3 install psycopg2

Nếu chúng tôi cũng quyết định cài đặt thư viện trình kết nối trong môi trường ảo, bạn có thể làm như vậy bằng cách sử dụng mã này:

virtualenv env && source env/bin/activate
pip install psycopg2-binary

Thư viện Psycopg2 và tất cả các phần phụ thuộc của nó sẽ được cài đặt vào môi trường ảo Python của chúng tôi bằng đoạn mã này.

Chúng tôi đã cài đặt trình kết nối của mình, vì vậy hãy bắt đầu nhập một số truy vấn.

Đọc thêm  Cách tạo trò chơi tiểu thuyết trực quan trong 10 phút – Hướng dẫn Python Ren'Py

Cách truy vấn PostgreSQL bằng Python

Trước tiên, bạn cần tạo một tệp mới và đặt tên cho nó là bất cứ thứ gì bạn muốn. Sau đó mở nó trong IDE của bạn và bắt đầu viết mã.

Điều đầu tiên cần làm là nhập thư viện (điều này rất quan trọng). Chúng tôi sẽ sử dụng hai đối tượng Psycogp2:

  • đối tượng kết nối: Kết nối đến một phiên bản cơ sở dữ liệu PostgreSQL được quản lý bởi đối tượng kết nối. Nó đóng gói một phiên cơ sở dữ liệu, được tạo bằng chức năng connect().
  • đối tượng con trỏ: Đối tượng con trỏ giúp các tập lệnh Python có thể chạy các lệnh PostgreSQL trong một phiên cơ sở dữ liệu. Kết nối tạo ra con trỏ, sau đó cursor() phương pháp liên kết chúng vĩnh viễn với kết nối. Tất cả các lệnh được thực hiện trong khuôn khổ của phiên cơ sở dữ liệu kèm theo kết nối.
import psycopg2

conn = psycopg2.connect(database="db_name",
                        host="db_host",
                        user="db_user",
                        password="db_pass",
                        port="db_port")

Chúng ta phải chỉ định các đối số đó để có thể kết nối với cơ sở dữ liệu. Chúng ta hãy có một cái nhìn nhanh chóng vào đó lập luận.

  • cơ sở dữ liệu: tên của cơ sở dữ liệu chúng tôi muốn truy cập hoặc kết nối. Lưu ý rằng chúng ta chỉ có thể kết nối với một cơ sở dữ liệu bằng một đối tượng kết nối.
  • chủ nhà: điều này rất có thể đề cập đến địa chỉ IP hoặc URL của máy chủ cơ sở dữ liệu.
  • người dùng: như tên ngụ ý, điều này đề cập đến tên của người dùng PostgreSQL.
  • mật khẩu mở khóa: đây là mật khẩu phù hợp với người dùng PostgreSQL.
  • Hải cảng: số cổng của máy chủ PostgreSQL trên localhost – nó thường là 5432.

Nếu thông tin đăng nhập cơ sở dữ liệu của chúng tôi được nhập chính xác, chúng tôi sẽ nhận được một đối tượng kết nối cơ sở dữ liệu trực tiếp mà chúng tôi có thể sử dụng để tạo đối tượng con trỏ. Chúng ta có thể tiếp tục và chạy bất kỳ truy vấn cơ sở dữ liệu nào và truy xuất dữ liệu với sự trợ giúp của đối tượng con trỏ.

cursor = conn.cursor()
đối tượng con trỏ

Hãy viết một truy vấn đơn giản:

cursor.execute("SELECT * FROM DB_table WHERE id = 1")

chúng tôi áp dụng các execute() chức năng và cung cấp một chuỗi truy vấn làm tham số của nó. Sau đó, cơ sở dữ liệu sẽ được truy vấn bằng truy vấn mà chúng tôi đã nhập.

Đọc thêm  Liệt kê thành chuỗi Python – ví dụ cú pháp nối()

Sau khi chúng tôi đã thực hiện thành công điều này, để có thể truy xuất dữ liệu từ cơ sở dữ liệu bằng cách sử dụng Pyscopg2chúng ta phải sử dụng bất kỳ chức năng nào sau đây: fetchone() fetchall()hoặc fetchmany().

Cách sử dụng fetchone():

Sau khi chạy truy vấn SQL, hàm này sẽ chỉ trả về hàng đầu tiên. Đây là phương pháp đơn giản nhất để lấy dữ liệu ra khỏi cơ sở dữ liệu.

#code
print(cursor.fetchone())

#output
(1, 'A-CLASS', '2018', 'Subcompact executive hatchback')
ví dụ tìm nạp ()

Các fetchone() hàm trả về một hàng duy nhất ở dạng tuplevới thông tin được sắp xếp theo thứ tự được chỉ định bởi các cột được cung cấp của truy vấn.

Khi xây dựng chuỗi truy vấn, điều quan trọng là phải cung cấp thứ tự cột một cách chính xác để phân biệt dữ liệu nào trong bộ thuộc về dữ liệu nào.

Cách sử dụng fetchall():

Các fetchall() chức năng hoạt động tương tự như fetchone() ngoại trừ việc nó trả về không chỉ một hàng mà tất cả các hàng. Vì vậy, trong trường hợp chúng tôi muốn 20-200 hàng trở lên, chúng tôi sử dụng Psycopg2 fetchall().

#code
print(cursor.fetchall())

#output
[(1, 'A-CLASS', '2018', 'Subcompact executive hatchback'),
 (2, 'C-CLASS', '2021', 'D-segment/compact executive sedan'),
 (3, 'CLA', '2019', 'Subcompact executive fastback sedan'),
 (4, 'CLS', '2018', 'E-segment/executive fastback sedan'),
 (5, 'E-CLASS', '2017', 'E-segment/executive sedan'),
 (6, 'EQE', '2022', 'All-electric E-segment fastback'),
 (7, 'EQS', '2021', 'All-electric full-size luxury liftback'),
 (8, 'S-CLASS', '2020', 'F-segment/full-size luxury sedan.'),
 (9, 'G-CLASS', '2018', 'Mid-size luxury SUV, known as the G-Wagen'),
 (10, 'GLE', '2019', 'Mid-size luxury crossover SUV')]
[...]
ví dụ tìm nạp ()

Cách sử dụng fetchmany():

Các fetchmany() chức năng cho phép chúng tôi lấy một số bản ghi ra khỏi cơ sở dữ liệu và cung cấp cho chúng tôi quyền kiểm soát bổ sung đối với số hàng chính xác mà chúng tôi nhận được.

#code
print(cursor.fetchmany(size=3))

#output
[(1, 'A-CLASS', '2018', 'Subcompact executive hatchback'),
 (2, 'C-CLASS', '2021', 'D-segment/compact executive sedan'),
 (3, 'CLA', '2019', 'Subcompact executive fastback sedan')]
ví dụ tìm nạp ()

Vì chúng tôi đặt đối số thành 3 nên chúng tôi chỉ nhận được ba hàng.

Khi chúng tôi truy vấn xong cơ sở dữ liệu của mình, chúng tôi cần đóng kết nối với conn.close().

Phần kết luận

Đó là khá dễ dàng, phải không? Chúng tôi có thể thực hiện tất cả các tác vụ này từ một tập lệnh Python duy nhất và nó hoạt động rất tốt.

Tôi hy vọng bài viết này hữu ích và giờ đây bạn có thể làm việc với PostgreSQL bằng Python.

Để biết thêm thông tin, hãy xem tài liệu Psycopg2 để tìm hiểu thêm.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status