Nội dung chính
Giới thiệu
PostgreSQL là một trong những hệ thống quản lý cơ sở dữ liệu quan hệ tiên tiến và được sử dụng rộng rãi nhất. Nó cực kỳ phổ biến vì nhiều lý do, một vài trong số đó bao gồm nó là nguồn mở, khả năng mở rộng của nó và khả năng xử lý nhiều loại ứng dụng khác nhau và tải trọng khác nhau
Với Python, bạn có thể dễ dàng thiết lập kết nối với cơ sở dữ liệu PostgreSQL của mình. Có rất nhiều trình điều khiển Python cho PostgreSQL, với “psycopg” là biến phổ biến nhất. Phiên bản hiện tại của nó là psycopg2
Trong bài viết này, chúng ta sẽ thảo luận về cách truy cập cơ sở dữ liệu PostgreSQL trong Python bằng trình điều khiển psycopg2
Mô-đun psycopg2
Chúng ta có thể hợp nhất Postgres với Python bằng cách sử dụng mô-đun psycopg2. psycopg2 là bộ chuyển đổi cơ sở dữ liệu Postgres cho Python. Để sử dụng mô-đun này, trước tiên bạn nên cài đặt nó. Điều này có thể được thực hiện bằng cách sử dụng lệnh, như được hiển thị dưới đây
pip3 install psycopg2
Lưu ý rằng chúng ta đang sử dụng Python 3. 5, tôi đã sử dụng pip3 thay vì pip
Khi mô-đun đã được cài đặt, bạn có thể sử dụng nó để kết nối với cơ sở dữ liệu của mình trong ứng dụng của mình
Connected with Cơ sở dữ liệu
Để kết nối với cơ sở dữ liệu của bạn, trước hết bạn nên tạo một đối tượng kết nối đại diện cho cơ sở dữ liệu. Tiếp theo, bạn nên tạo một đối tượng con trỏ để giúp bạn thực hiện các câu lệnh SQL của mình
Ví dụ sau đây cho thấy cách thiết lập kết nối với cơ sở dữ liệu có tên là “postgres”
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]
đầu ra
Database opened successfully
Sau đây là danh sách các tham số đã được sử dụng
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]
5. Tên của cơ sở dữ liệu bạn cần kết nốiimport psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]
6. Tên người dùng được sử dụng để xác thựcimport psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]
7. Mật khẩu cơ sở dữ liệu cho người dùngimport psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]
8. Địa chỉ của máy chủ cơ sở dữ liệu. Ví dụ. tên miền, “localhost”, hoặc địa chỉ IPimport psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]
9. Port number. Nếu bạn không cung cấp điều này, mặc định sẽ được sử dụng, đó là 5432
Lưu ý rằng các giá trị cho các tham số phải chính xác để kết nối thành công. Nếu không, một ngoại lệ sẽ được tạo ra. Xuất mã trong mã cho thấy kết nối với cơ sở dữ liệu đã được thiết lập thành công
Create Table
Để tạo bảng Postgres trong Python, chúng ta sử dụng câu lệnh SQL. Câu chuyện này nên được thực hiện sau khi thiết lập kết nối với cơ sở dữ liệu. Chúng ta cũng tạo một đối tượng con trỏ bằng cách gọi phương pháp thuộc về đối tượng. Đối tượng này được sử dụng để thực hiện các lệnh của bạn
Sau đó, chúng ta gọi phương thức của đối tượng để giúp tạo bảng. Cuối cùng, chúng ta cần cam kết và đóng kết nối. Trình điều khiển yêu cầu kết nối cam kết gửi lệnh đến cơ sở dữ liệu
Ví dụ sau đây để thấy điều này
________số 8_______đầu ra
Database opened successfully Table created successfully
Phương thức này giúp chúng ta áp dụng các thay đổi mà chúng ta đã thực hiện cho cơ sở dữ liệu và những thay đổi này không thể hoàn thành nếu chạy thành công. Phương pháp này sẽ đóng kết nối với cơ sở dữ liệu
Tại thời điểm này, chúng tôi đã tạo ra một bảng với 4 cột, tất cả đều có các loại dữ liệu khác nhau. Đầu ra trên bảng đã được tạo thành công
Chèn dữ liệu
Chúng ta có thể chèn một bản ghi hoặc nhiều bản ghi vào bảng cơ sở dữ liệu Postgres. Một lần nữa, trước tiên chúng ta phải thiết lập kết nối với máy chủ cơ sở dữ liệu bằng chức năng gọi điện. Tiếp theo, chúng ta nên tạo một đối tượng con trỏ bằng cách gọi phương thức. Cuối cùng, chúng ta chạy câu lệnh thông qua phương thức để thêm dữ liệu vào bảng
This is a ví dụ
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="Kaliakakya", host="127.0.0.1", port="5432"] print["Database opened successfully"] cur = con.cursor[] cur.execute["INSERT INTO STUDENT [ADMISSION,NAME,AGE,COURSE,DEPARTMENT] VALUES [3420, 'John', 18, 'Computer Science', 'ICT']"]; con.commit[] print["Record inserted successfully"] con.close[]
đầu ra
Database opened successfully Record inserted successfully
Sau khi chạy đoạn mã này, chúng ta đã chèn một bản ghi vào bảng cơ sở dữ liệu. Điều này được thực hiện bằng cách chỉ định tên của bảng cũng như các cột mà chúng ta cần thêm dữ liệu vào. Chúng ta cũng có thể thêm nhiều bản ghi vào một lệnh. deadline
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="Kaliakakya", host="127.0.0.1", port="5432"] print["Database opened successfully"] cur = con.cursor[] cur.execute["INSERT INTO STUDENT [ADMISSION,NAME,AGE,COURSE,DEPARTMENT] VALUES [3419, 'Abel', 17, 'Computer Science', 'ICT']"]; cur.execute["INSERT INTO STUDENT [ADMISSION,NAME,AGE,COURSE,DEPARTMENT] VALUES [3421, 'Joel', 17, 'Computer Science', 'ICT']"]; cur.execute["INSERT INTO STUDENT [ADMISSION,NAME,AGE,COURSE,DEPARTMENT] VALUES [3422, 'Antony', 19, 'Electrical Engineering', 'Engineering']"]; cur.execute["INSERT INTO STUDENT [ADMISSION,NAME,AGE,COURSE,DEPARTMENT] VALUES [3423, 'Alice', 18, 'Information Technology', 'ICT']"]; con.commit[] print["Records inserted successfully"] con.close[]
đầu ra
Database opened successfully Records inserted successfully
Vì phương pháp này không được gọi cho đến sau khi chúng ta “cam kết” tất cả các câu lệnh, nhiều bản ghi được thêm vào với một lần gọi duy nhất của phương thức
Truy xuất dữ liệu
You can choose data from Postgres database and view the write table. Đầu tiên, bạn phải thiết lập kết nối với cơ sở dữ liệu bằng chức năng. Tiếp theo, một con trỏ mới nên được tạo bằng cách gọi phương thức. Đối tượng con trỏ được tạo sau đó có thể được sử dụng để thực hiện câu lệnh truy vấn dữ liệu từ cơ sở dữ liệu
deadline
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="Kaliakakya", host="127.0.0.1", port="5432"] print["Database opened successfully"] cur = con.cursor[] cur.execute["SELECT admission, name, age, course, department from STUDENT"] rows = cur.fetchall[] for row in rows: print["ADMISSION =", row[0]] print["NAME =", row[1]] print["AGE =", row[2]] print["COURSE =", row[3]] print["DEPARTMENT =", row[4], "\n"] print["Operation done successfully"] con.close[]
đầu ra
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]0
Ở đây chúng ta đã lấy dữ liệu từ cơ sở dữ liệu bằng cách chỉ định bảng và tên của các cột mà chúng ta cần truy xuất từ bảng cơ sở dữ liệu. Dữ liệu này được trả về cho chúng ta dưới dạng danh sách các bộ dữ liệu, với danh sách “cấp cao nhất” là các hàng dữ liệu. Sau đó, mỗi hàng là một tuple của cột dữ liệu. Nếu không có hàng nào được trả về cho truy vấn thì một danh sách trống sẽ được trả về
Cập nhật bảng
Chúng ta có thể cập nhật hoặc sửa đổi các chi tiết của bản ghi đã được thêm vào bảng cơ sở dữ liệu. Đầu tiên, chúng ta phải thiết lập một kết nối với cơ sở dữ liệu bằng cách sử dụng phương thức. Tiếp theo, chúng ta gọi hàm để tạo đối tượng con trỏ. Cuối cùng, chúng ta chạy phương thức để thực hiện câu trả lời với các giá trị đầu vào
deadline
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]1
đầu ra
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]2
Trong ví dụ bên trên, chúng tôi đã cập nhật giá trị của cột cho tất cả các hàng có là 3420. Sau khi thực hiện bản cập nhật, chúng tôi truy xuất dữ liệu này để xác minh rằng các hàng / cột thích hợp đã được cập nhật
Remove the row
Để xóa bản ghi khỏi bảng cơ sở dữ liệu Postgres, trước tiên chúng ta nên thiết lập kết nối với máy chủ cơ sở dữ liệu. Thứ hai, một đối tượng con trỏ nên được tạo bằng cách gọi hàm. Sau đó, chúng ta chạy câu lệnh để thực hiện xóa
deadline
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]3
đầu ra
import psycopg2 con = psycopg2.connect[database="postgres", user="postgres", password="", host="127.0.0.1", port="5432"] print["Database opened successfully"]4
Trong ví dụ này, chúng tôi đã xóa tất cả các hồ sơ trong đó số đầu vào của học sinh là 3420, trong trường hợp này chỉ là một hàng. Sau khi truy xuất dữ liệu bằng cách sử dụng, chúng ta có thể thấy rằng bản ghi này không phải là một phần của đầu ra, xác nhận rằng nó đã bị xóa khỏi cơ sở dữ liệu
end
Với Python, có nhiều cách khác nhau để chúng ta có thể truy cập cơ sở dữ liệu PostgreSQL. Có rất nhiều trình điều khiển cơ sở dữ liệu cho Python mà chúng ta có thể sử dụng cho mục đích này, nhưng psycopg là biến phổ biến nhất. Trong bài viết này, chúng tôi đã chỉ ra cách cài đặt mô-đun, thiết lập kết nối với cơ sở dữ liệu PostgreSQL của bạn và thực hiện các biến truy vấn SQL phổ biến bằng mã Python