import psycopg2
# 连接PostgreSQL数据库
def connect_to_db(dbname, host, port, user, password):
"""
连接到PostgreSQL数据库
:param dbname: 数据库名
:param host: 数据库主机地址
:param port: 端口号
:param user: 用户名
:param password: 密码
:return: 数据库连接对象和游标对象
"""
# 使用psycopg2连接数据库
conn = psycopg2.connect(
dbname=dbname,
host=host,
port=port,
user=user,
password=password
)
# 创建游标对象
cur = conn.cursor()
return conn, cur
# 查询操作
def query_data(cur):
"""
执行查询操作
:param cur: 游标对象
:return: 查询结果
"""
# 编写SQL查询语句
sql_query = "SELECT * FROM your_table_name"
# 使用游标执行查询
cur.execute(sql_query)
# 获取所有查询结果
rows = cur.fetchall()
return rows
# 插入操作
def insert_data(cur, data):
"""
执行插入操作
:param cur: 游标对象
:param data: 要插入的数据
:return: 插入结果
"""
# 编写SQL插入语句
sql_insert = "INSERT INTO your_table_name (column1, column2) VALUES (%s, %s)"
# 使用游标执行插入
cur.execute(sql_insert, data)
# 提交事务
return cur.rowcount
# 更新操作
def update_data(cur, data, condition):
"""
执行更新操作
:param cur: 游标对象
:param data: 要更新的数据
:param condition: 更新条件
:return: 更新结果
"""
# 编写SQL更新语句
sql_update = "UPDATE your_table_name SET column1 = %s WHERE column2 = %s"
# 使用游标执行更新
cur.execute(sql_update, data, condition)
# 提交事务
return cur.rowcount
# 删除操作
def delete_data(cur, condition):
"""
执行删除操作
:param cur: 游标对象
:param condition: 删除条件
:return: 删除结果
"""
# 编写SQL删除语句
sql_delete = "DELETE FROM your_table_name WHERE column_name = %s"
# 使用游标执行删除
cur.execute(sql_delete, condition)
# 提交事务
return cur.rowcount
# 关闭数据库连接
def close_db_connection(conn, cur):
"""
关闭数据库连接和游标
:param conn: 数据库连接对象
:param cur: 游标对象
:return: None
"""
# 关闭游标
cur.close()
# 关闭连接
conn.close()
# 示例使用
if __name__ == "__main__":
# 数据库连接参数
dbname = "your_dbname"
host = "your_host"
port = "your_port"
user = "your_user"
password = "your_password"
# 连接数据库
conn, cur = connect_to_db(dbname, host, port, user, password)
# 查询数据
rows = query_data(cur)
print(rows)
#
评论已关闭