Работа с PostgreSQL в Python: методы и примеры кода

  1. Подключение к базе данных PostgreSQL:
    Чтобы установить соединение с базой данных PostgreSQL, вы можете использовать библиотеку psycopg2. Вот пример:
import psycopg2
# Connect to the PostgreSQL database
conn = psycopg2.connect(
    host="your_host",
    database="your_database",
    user="your_user",
    password="your_password"
)
# Create a cursor object
cursor = conn.cursor()
# Execute a query
cursor.execute("SELECT * FROM your_table")
# Fetch and print the results
results = cursor.fetchall()
for row in results:
    print(row)
# Close the cursor and connection
cursor.close()
conn.close()
  1. Выполнение SQL-запросов.
    Вы можете выполнять SQL-запросы, используя метод execute()объекта курсора. Вот пример:
# Execute a query to insert data into a table
cursor.execute("INSERT INTO your_table (column1, column2) VALUES (%s, %s)", ("value1", "value2"))
# Execute a query to update data in a table
cursor.execute("UPDATE your_table SET column1 = %s WHERE id = %s", ("new_value", 1))
# Execute a query to delete data from a table
cursor.execute("DELETE FROM your_table WHERE id = %s", (1,))
  1. Извлечение данных.
    Вы можете получить данные из базы данных с помощью методов fetchone()и fetchall(). Вот пример:
# Fetch a single row
cursor.execute("SELECT * FROM your_table")
row = cursor.fetchone()
print(row)
# Fetch all rows
cursor.execute("SELECT * FROM your_table")
rows = cursor.fetchall()
for row in rows:
    print(row)
  1. Обработка транзакций.
    Транзакции обеспечивают целостность базы данных. Вы можете использовать методы commit()и rollback()для управления транзакциями. Вот пример:
# Begin a transaction
conn = psycopg2.connect(...)
cursor = conn.cursor()
# Execute queries within the transaction
try:
    cursor.execute("INSERT INTO your_table (column1, column2) VALUES (%s, %s)", ("value1", "value2"))
    cursor.execute("UPDATE your_table SET column1 = %s WHERE id = %s", ("new_value", 1))
    # Commit the changes
    conn.commit()
except:
    # Roll back the transaction if an error occurs
    conn.rollback()
# Close the cursor and connection
cursor.close()
conn.close()