Python操作PostgreSQL数据库实战指南

文本介绍了使用Python中的psycopg2库来操作PostgreSQL数据库,包括安装必要的包、建立和关闭连接、执行增删改查操作以及处理可能的异常。这些操作将在Python应用程序中与PostgreSQL数据库进行有效的交互。

一. 简介和包的安装

PostgreSQL是一个强大、开源的对象关系数据库系统,具有高扩展性和标准的SQL支持。psycopg2是Python与PostgreSQL交互的最常用的库。安装包如下:

pip install psycopg2

二. 数据库连接和释放

要连接到PostgreSQL数据库,需要提供数据库主机地址、端口、数据库名称、用户名和密码。

import psycopg2
from psycopg2 import OperationalError

def create_connection(db_name, db_user, db_password, db_host, db_port):
    connection = None
    try:
        connection = psycopg2.connect(
            database=db_name,
            user=db_user,
            password=db_password,
            host=db_host,
            port=db_port,
        )
        print("Connection to PostgreSQL DB successful")
    except OperationalError as e:
        print(f"The error '{e}' occurred")
    return connection

def close_connection(connection):
    if connection:
        connection.close()
        print("The connection is closed")

# 使用示例
connection = create_connection("database_name", "user", "password", "127.0.0.1", "5432")
close_connection(connection)

三. 基本的增删改查操作

在连接到数据库后,可以执行基本的SQL操作,如插入、查询、更新和删除数据。

1. 插入数据

def execute_query(connection, query):
    cursor = connection.cursor()
    try:
        cursor.execute(query)
        connection.commit()
        print("Query executed successfully")
    except OperationalError as e:
        print(f"The error '{e}' occurred")

insert_query = """
INSERT INTO users (name, age, gender, nationality) VALUES
('James', 25, 'male', 'USA'),
('Leila', 32, 'female', 'France'),
('Brigitte', 35, 'female', 'UK');
"""

execute_query(connection, insert_query)

2. 查询数据

def execute_read_query(connection, query):
    cursor = connection.cursor()
    result = None
    try:
        cursor.execute(query)
        result = cursor.fetchall()
        return result
    except OperationalError as e:
        print(f"The error '{e}' occurred")

select_query = "SELECT * FROM users"
users = execute_read_query(connection, select_query)

for user in users:
    print(user)

3. 更新数据

update_query = """
UPDATE users
SET age = 30
WHERE name = 'James';
"""

execute_query(connection, update_query)

4. 删除数据

delete_query = "DELETE FROM users WHERE name = 'Brigitte';"
execute_query(connection, delete_query)

5. 异常处理

处理异常是确保程序稳定性的重要部分。在上述代码中,已通过try-except块来处理可能的异常。此外,还可以进一步细化异常处理逻辑。

def create_connection(db_name, db_user, db_password, db_host, db_port):
    connection = None
    try:
        connection = psycopg2.connect(
            database=db_name,
            user=db_user,
            password=db_password,
            host=db_host,
            port=db_port,
        )
        print("Connection to PostgreSQL DB successful")
    except OperationalError as e:
        if e.pgcode == psycopg2.errorcodes.INVALID_AUTHORIZATION_SPECIFICATION:
            print("Authentication failed, please check your username and password")
        elif e.pgcode == psycopg2.errorcodes.INVALID_CATALOG_NAME:
            print("Database does not exist")
        else:
            print(f"The error '{e}' occurred")
    return connection

PostgreSQL因其丰富的功能、稳定性和符合SQL标准的特性,广泛应用于各种领域。掌握Python与PostgreSQL的交互,将极大提高在数据处理和应用开发中的效率。

参考文献

[1] psycopg:https://www.psycopg.org/

[2] PEP 249 – Python Database API Specification v2.0:https://peps.python.org/pep-0249/

NLP工程化(星球号)

作者:NLP工程化

物联沃分享整理
物联沃-IOTWORD物联网 » Python操作PostgreSQL数据库实战指南

发表回复