📅  最后修改于: 2023-12-03 15:34:03.596000             🧑  作者: Mango
PostgreSQL是一种高级开源的关系型数据库管理系统(RDBMS),它提供了有全文索引、复杂查询、事务、外键等高级功能。Python作为一种高效的编程语言,也与PostgreSQL紧密结合,提供了psycopg2等多种Python驱动程序与PostgreSQL进行交互。
本教程将介绍如何使用Python与PostgreSQL进行交互。
首先,需要安装PostgreSQL数据库。最新版代码可以通过以下方式获取:
sudo apt-get update
sudo apt-get install postgresql
PS:当前教程是基于Ubuntu系统的。
安装完PostgreSQL后,需要安装Python与PostgreSQL的驱动程序——psycopg2:
pip install psycopg2
在与PostgreSQL建立连接之前,需要先在PostgreSQL中创建数据库。只要具备数据库用户名和数据库密码,即可创建一个新数据库:
sudo su - postgres
createdb dbname
import psycopg2
try:
conn = psycopg2.connect(database="dbname", user="username", password="password", host="127.0.0.1", port="5432")
print("连接数据库成功")
except:
print("连接数据库失败")
以上述创建的数据库为例,我们可以在其中创建一张新表:
cur = conn.cursor()
cur.execute('CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL)')
conn.commit()
执行以上代码后,数据库中即可看到新建的表COMPANY。
在新建的COMPANY表中增加一些数据:
cur.execute("INSERT INTO COMPANY (ID, NAME, AGE) VALUES (1, '张三', 22)")
cur.execute("INSERT INTO COMPANY (ID, NAME, AGE) VALUES (2, '李四', 25)")
cur.execute("INSERT INTO COMPANY (ID, NAME, AGE) VALUES (3, '王五', 32)")
cur.execute("INSERT INTO COMPANY (ID, NAME, AGE) VALUES (4, '赵六', 21)")
conn.commit()
cur.execute("SELECT id, name, age from COMPANY")
rows = cur.fetchall()
for row in rows:
print("ID = ", row[0])
print("NAME = ", row[1])
print("AGE = ", row[2], "\n")
查询数据后,即可在Python控制台中看到COMPANY表中的数据。
在表中更新数据:
cur.execute("UPDATE COMPANY set AGE = 33 where ID = 3")
conn.commit()
删除COMPANY表:
cur.execute("DROP TABLE COMPANY")
conn.commit()
可以建立数据表的索引以优化查询:
cur.execute("CREATE INDEX nameindex ON COMPANY (NAME)")
conn.commit()
最后,关闭与PostgreSQL的连接:
conn.close()
本教程介绍了如何使用Python与PostgreSQL进行交互,包括如何连接数据库、创建表、更新表、删除表、建立索引等,希望能对开发者有所帮助。