Chuyển đến nội dung chính

Quản lý cơ sở dữ liệu PostgreSQL trong Python với psycopg2

Khám phá cách tạo, kết nối và quản lý cơ sở dữ liệu PostgreSQL bằng gói psycopg2 của Python.
Đã cập nhật 5 thg 10, 2026  · 14 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Dữ liệu là trung tâm của hầu hết mọi ứng dụng số mà bạn có thể nghĩ đến. Từ ứng dụng di động và trò chơi máy tính đến công cụ ngân hàng và xe tự hành, mọi thứ đều dựa trên dữ liệu. Tất cả dữ liệu này được lưu ở đâu? Câu trả lời là cơ sở dữ liệu. 

Cơ sở dữ liệu là một tập hợp có tổ chức của dữ liệu có cấu trúc, thường được lưu trữ điện tử trong hệ thống máy tính. Bất chấp sự xuất hiện gần đây của các loại cơ sở dữ liệu mới (được thiết kế để xử lý khối lượng và tính đa dạng dữ liệu ngày càng tăng), một lượng lớn dữ liệu trên thế giới vẫn được lưu trong cơ sở dữ liệu quan hệ. Cơ sở dữ liệu quan hệ lưu dữ liệu dưới dạng các bảng được xác định trước với hàng và cột, được kết nối thông qua một hoặc nhiều mối quan hệ. 

Khả năng xử lý và trích xuất dữ liệu từ các cơ sở dữ liệu này là một kỹ năng thiết yếu trong ngành dữ liệu và đang ngày càng được săn đón. Cách tiêu chuẩn để tạo và quản lý cơ sở dữ liệu là SQL (Structured Query Language - Ngôn ngữ Truy vấn Có cấu trúc). SQL là nền tảng cho một số hệ quản trị cơ sở dữ liệu quan hệ phổ biến nhất trên thị trường, như PostgreSQL, Microsoft SQL Server, MySQL và SQLite

Trong hướng dẫn này, chúng ta sẽ tập trung vào cơ sở dữ liệu dựa trên PostgreSQL và cách bạn có thể tạo, kết nối và quản lý chúng bằng Python. Cặp đôi SQL-Python là một trong những kỹ năng bắt buộc cần thành thạo trong hành trình khoa học dữ liệu. Để kết nối Python với PostgreSQL, chúng ta sẽ dùng gói psycopg2, trình điều hợp cơ sở dữ liệu PostgreSQL phổ biến nhất cho Python. Sẵn sàng chưa? Bắt đầu thôi!

Tìm hiểu PostgreSQL

PostgreSQL là một cơ sở dữ liệu quan hệ nhẹ, miễn phí và mã nguồn mở. Nhờ kiến trúc đã được kiểm chứng, độ tin cậy, tính toàn vẹn dữ liệu và khả năng tích hợp mượt mà với các ngôn ngữ lập trình phổ biến khác như Python và R, PostgreSQL được ngành công nghiệp đón nhận rất rộng rãi, với các công ty thuộc mọi quy mô và khu vực sử dụng. 

PostgreSQL sử dụng và mở rộng ngôn ngữ SQL, kết hợp nhiều tính năng giúp lưu trữ và mở rộng các khối lượng công việc dữ liệu phức tạp một cách an toàn. 

Để bắt đầu dùng PostgreSQL, trước hết bạn phải cài đặt nó trên máy tính. Trên trang chính thức của PostgreSQL, bạn có thể tìm thấy nhiều gói và trình cài đặt sẵn sàng sử dụng, cùng kho mã nguồn cho các nền tảng và trường hợp sử dụng khác nhau.

Trong hướng dẫn này, chúng ta sẽ dùng Postgres App, một ứng dụng macOS bản địa, đơn giản, bao gồm mọi tính năng cần thiết để khởi đầu với PostgreSQL. Tuy nhiên, hãy nhớ rằng các gói khác đều hợp lệ như nhau, và cú pháp PostgreSQL để chạy truy vấn là giống nhau giữa các gói.

Nếu bạn muốn tìm hiểu thêm về PostgreSQL, hãy xem Hướng dẫn dành cho người mới bắt đầu về PostgreSQL và số lượng lớn các khóa học SQL.

Tìm hiểu psycopg2

Để kết nối tới một cơ sở dữ liệu đã được tạo sẵn trong hệ thống của bạn hoặc trên Internet, bạn sẽ phải hướng dẫn Python cách nhận diện nó. Nói cách khác, bạn phải cho Python biết cơ sở dữ liệu bạn quan tâm là cơ sở dữ liệu PostgreSQL. 

Trong Python, bạn có một vài lựa chọn. Ở đây, chúng ta sẽ dùng psycopg2, có lẽ là trình điều hợp cơ sở dữ liệu PostgreSQL phổ biến nhất cho Python. Psycopg2 yêu cầu một vài điều kiện tiên quyết để hoạt động đúng trên máy của bạn. Sau khi cài đặt chúng (đọc tài liệu để biết thêm), bạn có thể cài đặt psycopg2 giống như bất kỳ gói Python nào khác:

pip install psycopg2

Tuy nhiên, nếu bạn muốn dùng psycopg2 một cách đơn giản, bạn cũng có thể cài psycopg2-binary, một phiên bản độc lập của gói, không cần trình biên dịch hay thư viện ngoài. Đây là cách cài đặt được khuyến nghị cho người mới.

pip install psycopg2-binary

Cuối cùng, nếu bạn dùng Python trong môi trường Conda, bạn nên cài psycopg2 bằng Anaconda:

conda install -c anaconda psycopg2

Bây giờ mọi thứ đã sẵn sàng, hãy tạo kết nối đầu tiên tới phiên PostgreSQL của bạn với psycopg2!

Kết nối Python với PostgreSQL

Để dùng Python tương tác với cơ sở dữ liệu PostgreSQL, chúng ta cần tạo một kết nối. Việc này được thực hiện bằng hàm connect() của psycopg2, hàm này tạo một phiên cơ sở dữ liệu mới và trả về một đối tượng kết nối mới.

Trong hướng dẫn này, chúng ta sẽ kết nối tới cơ sở dữ liệu có tên “datacamp_courses” được lưu trữ cục bộ. 

conn = psycopg2.connect(database = "datacamp_courses", 
                        user = "datacamp", 
                        host= 'localhost',
                        password = "postgresql_tutorial",
                        port = 5432)

Các tham số kết nối cơ bản cần có gồm:

  • database. Tên cơ sở dữ liệu.
  • user. Tên người dùng để xác thực.
  • password. Mật khẩu dùng để xác thực.
  • host. Địa chỉ máy chủ cơ sở dữ liệu (trong ví dụ của chúng ta là cục bộ, nhưng cũng có thể là địa chỉ IP).
  • port. Cổng kết nối (mặc định 5432 nếu không chỉ định).

Tạo bảng trong PostgreSQL

Đã đến lúc tạo bảng đầu tiên trong cơ sở dữ liệu datacamp_courses. Chúng ta muốn tạo một bảng chứa thông tin về một số khóa học trong danh mục khóa học của DataCamp. Bảng có lược đồ như sau: 

Bản đặc tả cung cấp khá nhiều thông tin về các cột của bảng. Khóa chính của bảng nên là course_id, và kiểu dữ liệu của nó là số nguyên. Khóa chính là một ràng buộc đảm bảo các giá trị trong cột không rỗng và duy nhất. Nó cho phép bạn định danh duy nhất một bản ghi cụ thể hoặc một tập bản ghi trong bảng. 

Các cột còn lại cung cấp thông tin về tên khóa học, tên giảng viên và chủ đề của khóa học.

Trước khi tạo bảng, điều quan trọng là giải thích cách hoạt động của đối tượng kết nối bạn vừa tạo. Về bản chất, kết nối bao bọc một phiên làm việc với cơ sở dữ liệu và cho phép bạn thực thi các lệnh và truy vấn SQL như SELECT, INSERT, CREATE, UPDATE hoặc DELETE bằng phương thức cursor(), và ghi nhận thay đổi vĩnh viễn bằng phương thức commit() .

Sau khi tạo đối tượng con trỏ, bạn có thể gửi lệnh tới cơ sở dữ liệu bằng phương thức execute() và truy xuất dữ liệu từ bảng bằng fetchone(), fetchmany() hoặc fetchall().

Cuối cùng, điều quan trọng là đóng con trỏ và kết nối tới cơ sở dữ liệu khi bạn đã hoàn tất thao tác. Nếu không, chúng sẽ tiếp tục giữ tài nguyên phía máy chủ. Để làm vậy, bạn có thể dùng phương thức close() .

Bên dưới là mã để tạo bảng datacamp_courses:

# Open a cursor to perform database operations
cur = conn.cursor()
# Execute a command: create datacamp_courses table
cur.execute("""CREATE TABLE datacamp_courses(
            course_id SERIAL PRIMARY KEY,
            course_name VARCHAR (50) UNIQUE NOT NULL,
            course_instructor VARCHAR (100) NOT NULL,
            topic VARCHAR (20) NOT NULL);
            """)
# Make the changes to the database persistent
conn.commit()
# Close cursor and communication with the database
cur.close()
conn.close()

Đây là ví dụ rất cơ bản về cách tạo bảng trên PostgreSQL, nhưng mọi thứ có thể phức tạp hơn nhiều. Nếu bạn muốn học thêm cách tạo cơ sở dữ liệu PostgreSQL và khám phá cấu trúc, kiểu dữ liệu, cũng như cách chuẩn hóa cơ sở dữ liệu, hãy xem khóa học Creating PostgreSQL Database của chúng tôi.

Thực thi các truy vấn PostgreSQL cơ bản trong Python

Bảng datacamp_courses đã sẵn sàng; bây giờ là lúc dùng SQL để thực hiện vài truy vấn cơ bản!

INSERT 

Bạn có thể nhận thấy rằng bảng hiện chưa có giá trị nào. Để tạo bản ghi trong bảng datacamp_courses, chúng ta cần lệnh INSERT.

cur = conn.cursor()

cur.execute("INSERT INTO datacamp_courses(course_name, course_instructor, topic) VALUES('Introduction to SQL','Izzy Weber','Julia')");

cur.execute("INSERT INTO datacamp_courses(course_name, course_instructor, topic) VALUES('Analyzing Survey Data in Python','EbunOluwa Andrew','Python')");

cur.execute("INSERT INTO datacamp_courses(course_name, course_instructor, topic) VALUES('Introduction to ChatGPT','James Chapman','Theory')");

cur.execute("INSERT INTO datacamp_courses(course_name, course_instructor, topic) VALUES('Introduction to Statistics in R','Maggie Matsui','R')");

cur.execute("INSERT INTO datacamp_courses(course_name, course_instructor, topic) VALUES('Hypothesis Testing in Python','James Chapman','Python')");

conn.commit()
cur.close()
conn.close()

Bảng thu được sẽ trông như sau:

course_id

course_name

course_instructor

topic

1

Introduction to SQL

Izzy Weber

Julia

2

Analyzing Survey Data in Python

EbunOluwa Andrew

Python

3

Introduction to ChatGPT

James Chapman

Theory

4

Introduction to Statistics in R

Maggie Matsui

R

5

Hypothesis Testing in Python

James Chapman

Python

SELECT 

Đọc dữ liệu trong cơ sở dữ liệu SQL có lẽ là việc bạn sẽ làm rất nhiều trong hành trình khoa học dữ liệu. Việc này thường được gọi là truy vấn SELECT. Bây giờ, hãy xem bảng datacamp_courses trông như thế nào.

Chúng ta sẽ gọi câu lệnh kinh điển SELECT * FROM database_name để đọc tất cả dữ liệu có trong bảng. Sau đó, dùng phương thức fetchall() để lấy tất cả các hàng. Lưu ý PostgreSQL tự động tạo chỉ mục số cho cột course_id. 

cur = conn.cursor()
cur.execute('SELECT * FROM datacamp_courses;')
rows = cur.fetchall()
conn.commit()
conn.close()
for row in rows:
    print(row)
(1, 'Introduction to SQL', 'Izzy Weber', 'Julia')
(2, 'Analyzing Survey Data in Python', 'EbunOluwa Andrew', 'Python')
(3, 'Introduction to ChatGPT', 'James Chapman', 'Theory')
(4, 'Introduction to Statistics in R', 'Maggie Matsui', 'R')
(5, 'Hypothesis Testing in Python', 'James Chapman', 'Python')

UPDATE 

Dữ liệu thường có lỗi. Bạn có thể đã nhận thấy ở phần trước rằng chủ đề gắn với khóa học “Introduction to SQL” là Julia. Sau khi kiểm tra thông tin khóa học, chúng ta phát hiện sai sót. Cần thay đổi thành “SQL”. Có thể thực hiện bằng lệnh UPDATE như sau:

cur = conn.cursor()
cur.execute("UPDATE datacamp_courses SET topic = 'SQL' WHERE course_name = 'Introduction to SQL';")
conn.commit()
conn.close()

DELETE 

Cuối cùng, bạn có thể muốn xóa một bản ghi khỏi bảng. Ví dụ, hãy xóa khóa học Introduction to Statistics in R:

cur = conn.cursor()
cur.execute("""DELETE from datacamp_courses WHERE course_name = 'Introduction to Statistics in R'""");
conn.commit()
cur.close()

Các truy vấn PostgreSQL nâng cao trong Python

Ở phần trước, chúng ta đã xem các truy vấn SQL cơ bản nhất. Nhưng còn nhiều điều để học. Hãy xem một số truy vấn nâng cao hơn.

ORDER BY

Giả sử bạn muốn sắp xếp cơ sở dữ liệu theo tên giảng viên. Bạn có thể dùng câu lệnh ORDER BY:

cur = conn.cursor()

cur.execute('SELECT * FROM datacamp_courses ORDER BY course_instructor')
rows = cur.fetchall()
for row in rows:
    print(row)
(2, 'Analyzing Survey Data in Python', 'EbunOluwa Andrew', 'Python')
(1, 'Introduction to SQL', 'Izzy Weber', 'SQL')
(3, 'Introduction to ChatGPT', 'James Chapman', 'Theory')
(4, 'Hypothesis Testing in Python', 'James Chapman', 'Python')

GROUP BY

Bạn có thể muốn thực hiện một số hàm tổng hợp trong các nhóm dữ liệu khác nhau. Ví dụ, bạn có thể quan tâm đến việc tính số lượng khóa học theo giảng viên. Bạn có thể làm điều này với GROUP BY.

cur = conn.cursor()
cur.execute('SELECT course_instructor, COUNT(*) FROM datacamp_courses GROUP BY course_instructor')
rows = cur.fetchall()
for row in rows:
    print(row)
('James Chapman', 2)
('Izzy Weber', 1)
('EbunOluwa Andrew', 1)

JOIN

Đến thời điểm này, chúng ta mới chỉ làm việc với bảng datacamp_course. Tuy nhiên, bạn chỉ thực sự khai thác hết tiềm năng của cơ sở dữ liệu quan hệ như PostgreSQL khi làm việc với nhiều bảng cùng lúc. 

Công cụ “ma thuật” để kết hợp nhiều bảng là phép JOIN. Hãy tưởng tượng chúng ta có một bảng thứ hai trong cơ sở dữ liệu tên là programming_languages chứa thông tin cơ bản về các ngôn ngữ lập trình hàng đầu cho khoa học dữ liệu, gồm tên, vị trí trong Chỉ số TIOBE và số lượng khóa học về ngôn ngữ đó trên Datacamp. Bảng trông như sau:

language_id

language_name

course_number

tiobe_ranking

1

SQL

31

8

2

Python

157

1

3

R

132

16

4

Julia

2

33

5

Scala

1

38

Giả sử bạn muốn gộp hai bảng để lấy thông tin khóa học cùng với vị trí của ngôn ngữ trên chỉ số TIOBE. Chúng ta sẽ dùng INNER JOIN để chỉ lấy thông tin các ngôn ngữ lập trình xuất hiện trong bảng datacamp_course. 

cur = conn.cursor()
cur.execute("""SELECT course_name, course_instructor, topic, tiobe_ranking
FROM datacamp_courses
INNER JOIN programming_languages
ON datacamp_courses.topic = programming_languages.language_name""")
rows = cur.fetchall()
for row in rows:
    print(row)
('Introduction to SQL', 'Izzy Weber', 'SQL', 8)
('Analyzing Survey Data in Python', 'EbunOluwa Andrew', 'Python', 1)
('Hypothesis Testing in Python', 'James Chapman', 'Python', 1)

Đây chỉ là một ví dụ, nhưng tiềm năng của các phép nối (join) trong SQL là vô tận, khiến đây trở thành chủ đề bắt buộc phải biết. Khóa học, hướng dẫn và cheatsheet về join của chúng tôi sẽ giúp bạn bắt đầu.

Bắt đầu với SQLAlchemy

Psycopg2 là công cụ tuyệt vời để kết nối với cơ sở dữ liệu PostgreSQL. Nhưng nếu bạn phải làm việc với các cơ sở dữ liệu được lưu trên những hệ quản trị khác, như Oracle và MySQL thì sao? Trong những tình huống này, có thể tốt hơn khi dùng công cụ có thể kết nối với nhiều loại cơ sở dữ liệu SQL khác nhau. SQLAlchemy là một lựa chọn tuyệt vời. 

Nói đơn giản, SQLAlchemy cho phép người dùng kết nối cơ sở dữ liệu bằng ngôn ngữ Python, chạy truy vấn SQL theo kiểu lập trình hướng đối tượng và tối ưu quy trình làm việc. 

Mặc dù cú pháp khác so với psycopg2, bạn hầu như có thể làm được những việc tương tự. Dưới đây là ví dụ tạo engine để kết nối tới tập dữ liệu datacamp_courses của chúng ta và đọc toàn bộ dữ liệu có trong bảng datacap_course

import sqlalchemy as db


engine = db.create_engine("postgresql://datacamp@localhost:5432/datacamp_courses")
conn = engine.connect() 
output = conn.execute("SELECT * FROM datacamp_courses")
print(output.fetchall())
conn.close()
[(3, 'Introduction to ChatGPT', 'James Chapman', 'Theory'),
 (5, 'Hypothesis Testing in Python', 'James Chapman', 'Python'),
 (2, 'Analyzing Survey Data in Python', 'EbunOluwa Andrew', 'Python'),
 (1, 'Introduction to SQL', 'Izzy Weber', 'SQL')]

SQLAlchemy cũng là một công cụ đáng để học. Để có cái nhìn tổng quan về cách công cụ hoạt động, hãy xem SQLALchemy Tutorial của chúng tôi.  

Sử dụng PostgreSQL trong DataCamp DataLab

Tại DataCamp, chúng tôi nỗ lực để khiến khoa học dữ liệu trở nên dễ dàng và tiếp cận được với mọi người. Đó là lý do ra đời DataCamp DataLab, một sổ tay trên nền đám mây được thiết kế riêng cho khoa học dữ liệu. Bạn có thể xem DataCamp DataLab như sự kết hợp giữa Jupyter Notebook và Google Docs, cho phép người dùng viết mã, phân tích dữ liệu cá nhân hoặc theo nhóm, và chia sẻ insight dữ liệu.

Kết nối DataLab với cơ sở dữ liệu PostgreSQL, cũng như các cơ sở dữ liệu SQL khác, cực kỳ dễ dàng. DataLab cho phép bạn kết nối tới nguồn dữ liệu một cách an toàn. Đồng thời, bạn có thể tiếp tục phân tích dữ liệu liền mạch bằng Python hoặc R. Bạn chỉ cần tạo một integration thông qua quy trình không cần viết mã, trong đó bạn sẽ nhập thông tin xác thực kết nối.

Cuối cùng, nếu bạn muốn thử tích hợp nhưng không có cơ sở dữ liệu PostgreSQL để kết nối, bạn có thể dùng một trong các cơ sở dữ liệu PostgreSQL mẫu của chúng tôi!

Quan tâm đến DataCamp DataLab? Xem bài viết này để tìm hiểu thêm về sổ tay thế hệ mới dành cho khoa học dữ liệu.

Kết luận

Tuyệt vời! Trong hướng dẫn này, bạn đã làm quen với PostgreSQL và học cách quản lý cơ sở dữ liệu ngay trong Python bằng gói psycopg2. Nhưng đây chỉ là bước khởi đầu. SQL là một trong những ngôn ngữ lập trình được dùng rộng rãi nhất trong khoa học dữ liệu. Nó cũng khá dễ học, nên không có lý do để trì hoãn.  

May mắn là Datacamp có đủ tài nguyên cho bạn. Dưới đây là một số nguồn hữu ích giúp bạn thành thạo PostgreSQL nói riêng và SQL nói chung:

FAQs

Sự khác nhau giữa psycopg2 và psycopg2-binary là gì?

psycopg2 là gói nguồn và yêu cầu cài đặt trình biên dịch C cùng thư viện khách hàng PostgreSQL trên hệ thống của bạn. psycopg2-binary là phiên bản đã biên dịch sẵn, bao gồm mọi thứ bạn cần để bắt đầu nhanh chóng. Nó rất phù hợp cho mục đích phát triển và học tập nhưng không được khuyến nghị cho môi trường sản xuất do có thể xảy ra không tương thích nhị phân.

Tôi xử lý lỗi kết nối cơ sở dữ liệu trong Python như thế nào?

Bạn có thể bắt và xử lý các lỗi liên quan đến kết nối bằng khối try-except của Python. Ví dụ:

import psycopg2
from psycopg2 import OperationalError

try:
    conn = psycopg2.connect(
        database="datacamp_courses",
        user="datacamp",
        password="postgresql_tutorial",
        host="localhost",
        port=5432
    )
except OperationalError as e:
    print(f"An error occurred: {e}")

Điều này cho phép script của bạn dừng một cách an toàn và thậm chí thử kết nối lại nếu cần.

Làm thế nào để kết nối tới cơ sở dữ liệu PostgreSQL từ xa thay vì cục bộ?

Để kết nối tới cơ sở dữ liệu PostgreSQL từ xa, hãy thay localhost bằng địa chỉ IP hoặc tên miền của máy chủ từ xa. Hãy đảm bảo:

  • Máy chủ cơ sở dữ liệu cho phép kết nối bên ngoài.
  • Cổng đúng (thường là 5432) được mở trên tường lửa.
  • Tệp pg_hba.conf của PostgreSQL được cấu hình để chấp nhận kết nối từ xa.

Tôi có thể dùng biến môi trường để lưu thông tin xác thực cơ sở dữ liệu một cách an toàn không?

Có, lưu thông tin xác thực dưới dạng biến môi trường an toàn hơn là ghi cứng trong mã. Bạn có thể truy cập chúng trong Python bằng os.environ:

import os
conn = psycopg2.connect(
    database=os.environ["DB_NAME"],
    user=os.environ["DB_USER"],
    password=os.environ["DB_PASSWORD"],
    host=os.environ["DB_HOST"],
    port=os.environ["DB_PORT"]
)

Hãy dùng các công cụ như tệp .env với python-dotenv để quản lý cục bộ.

Làm sao để ngăn tấn công SQL injection khi dùng psycopg2?

Luôn dùng truy vấn tham số hóa (parameterized queries) thay vì định dạng chuỗi khi chèn dữ liệu người dùng:

cur.execute("INSERT INTO datacamp_courses(course_name, course_instructor, topic) VALUES (%s, %s, %s)",
            ('Course Name', 'Instructor', 'Topic'))

Điều này ngăn người dùng độc hại chèn mã SQL nguy hiểm vào truy vấn của bạn.

Làm thế nào để cập nhật nhiều hàng cùng lúc trong psycopg2?

Bạn có thể dùng phương thức executemany() để chèn hoặc cập nhật nhiều hàng hiệu quả:

courses = [
    ('Course A', 'Instructor A', 'Python'),
    ('Course B', 'Instructor B', 'R')
]
cur.executemany("INSERT INTO datacamp_courses(course_name, course_instructor, topic) VALUES (%s, %s, %s)", courses)

Những kiểu dữ liệu nào có trong PostgreSQL và chúng ánh xạ sang Python ra sao?

Dưới đây là một vài kiểu dữ liệu phổ biến của PostgreSQL và kiểu tương đương trong Python:

Kiểu PostgreSQL Tương đương trong Python
INTEGER int
VARCHAR, TEXT str
BOOLEAN bool
DATE, TIMESTAMP datetime.date, datetime.datetime
NUMERIC decimal.Decimal

Làm thế nào để xuất dữ liệu từ PostgreSQL ra CSV bằng Python?

Bạn có thể dùng phương thức copy_expert() với lệnh SQL COPY:

with open('courses.csv', 'w') as f:
    cur.copy_expert("COPY datacamp_courses TO STDOUT WITH CSV HEADER", f)

Cách này hữu ích để tạo bản sao lưu hoặc xuất dữ liệu phục vụ phân tích.

Tôi có thể dùng Jupyter Notebook để chạy các lệnh Python-PostgreSQL này không?

Chắc chắn rồi! psycopg2 hoạt động mượt mà trong Jupyter. Chỉ cần đảm bảo kết nối cơ sở dữ liệu được đóng đúng cách sau khi truy vấn, vì các phiên Jupyter có thể vẫn mở và tiêu tốn tài nguyên.

Cách tốt nhất để gỡ lỗi các truy vấn SQL bị lỗi trong Python là gì?

Bạn có thể:

  • In ra truy vấn và tham số trước khi thực thi.
  • Dùng log của PostgreSQL để tìm chi tiết hơn.
  • Bật ghi log của psycopg2 bằng cách thiết lập connection.set_isolation_level() hoặc dùng chế độ echo của SQLAlchemy nếu bạn dùng giao diện đó.

Javier Canales Luna's photo
Author
Javier Canales Luna
LinkedIn

Tôi là một chuyên viên phân tích dữ liệu tự do, hợp tác với các công ty và tổ chức trên toàn thế giới trong các dự án khoa học dữ liệu. Tôi cũng là giảng viên khoa học dữ liệu với hơn 2 năm kinh nghiệm. Tôi thường xuyên viết bài về khoa học dữ liệu bằng tiếng Anh và tiếng Tây Ban Nha; một số bài đã được đăng trên các trang uy tín như DataCamp, Towards Data Science và Analytics Vidhya. Là một nhà khoa học dữ liệu có nền tảng khoa học chính trị và luật, mục tiêu của tôi là làm việc tại giao điểm giữa chính sách công, pháp luật và công nghệ, tận dụng sức mạnh của ý tưởng để thúc đẩy các giải pháp và cách tiếp cận mới nhằm giúp chúng ta đối mặt với những thách thức cấp bách, đặc biệt là khủng hoảng khí hậu. Tôi xem mình là người tự học, không ngừng trau dồi và là một người ủng hộ vững chắc cho tính đa ngành. Không bao giờ là quá muộn để học điều mới.

Chủ đề
Python
Khoa học Dữ liệu
Phân tích dữ liệu
SQL

Tìm hiểu thêm về Python

Khóa học

Nhập môn Cơ sở dữ liệu với Python

4 giờ
102.1K
Tìm hiểu kiến thức cơ bản về cơ sở dữ liệu quan hệ và cách tương tác với chúng trong khóa học này.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm