📜  Python| psycopg2-PostGreSQL 入门(1)

📅  最后修改于: 2023-12-03 15:04:22.422000             🧑  作者: Mango

Python| psycopg2 - PostGreSQL 入门

简介

Psycopg2 是 Python 中 PostGreSQL 数据库的驱动。它允许 Python 开发者使用 Python 与 PostGreSQL 数据库进行交互。

安装

要安装 psycopg2,可以使用 pip 包管理器。在终端中运行以下命令:

pip install psycopg2
连接到数据库

使用 psycopg2 连接到 PostGreSQL 数据库时,需要提供以下信息:

  • 主机名或 IP 地址
  • 端口号
  • 数据库名
  • 用户名
  • 密码

以下代码演示了如何使用 psycopg2 连接到数据库:

import psycopg2

conn = psycopg2.connect(
    host="localhost",
    port="5432",
    database="my_database",
    user="my_username",
    password="my_password"
)

cur = conn.cursor()

cur.execute("SELECT * FROM my_table")
rows = cur.fetchall()

for row in rows:
    print(row)

cur.close()
conn.close()
执行 SQL 语句

可以使用 psycopg2 执行各种 SQL 语句。以下代码演示了如何使用 psycopg2 执行 SELECT 语句:

import psycopg2

conn = psycopg2.connect(
    host="localhost",
    port="5432",
    database="my_database",
    user="my_username",
    password="my_password"
)

cur = conn.cursor()

cur.execute("SELECT * FROM my_table")
rows = cur.fetchall()

for row in rows:
    print(row)

cur.close()
conn.close()

以下代码演示了如何使用 psycopg2 执行 INSERT 语句:

import psycopg2

conn = psycopg2.connect(
    host="localhost",
    port="5432",
    database="my_database",
    user="my_username",
    password="my_password"
)

cur = conn.cursor()

cur.execute("INSERT INTO my_table (column1, column2) VALUES (%s, %s)", ("value1", "value2"))

conn.commit()

cur.close()
conn.close()
批量插入数据

使用 psycopg2 批量插入数据时,可以使用 executemany() 函数。以下代码演示了如何使用 executemany() 函数批量插入数据:

import psycopg2

conn = psycopg2.connect(
    host="localhost",
    port="5432",
    database="my_database",
    user="my_username",
    password="my_password"
)

cur = conn.cursor()

data = [
    ("value1", "value2"),
    ("value3", "value4"),
    ("value5", "value6")
]

cur.executemany("INSERT INTO my_table (column1, column2) VALUES (%s, %s)", data)

conn.commit()

cur.close()
conn.close()
总结

Psycopg2 是 Python 中 PostGreSQL 数据库的驱动。使用 psycopg2 可以轻松地连接到数据库并执行各种 SQL 语句。要开始使用 psycopg2,请确保已安装 psycopg2 包并提供正确的连接信息。