📜  Python PostgreSQL教程(1)

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

Python PostgreSQL教程

简介

PostgreSQL是一种高级开源的关系型数据库管理系统(RDBMS),它提供了有全文索引、复杂查询、事务、外键等高级功能。Python作为一种高效的编程语言,也与PostgreSQL紧密结合,提供了psycopg2等多种Python驱动程序与PostgreSQL进行交互。

本教程将介绍如何使用Python与PostgreSQL进行交互。

安装
PostgreSQL安装

首先,需要安装PostgreSQL数据库。最新版代码可以通过以下方式获取:

sudo apt-get update
sudo apt-get install postgresql

PS:当前教程是基于Ubuntu系统的。

Python驱动安装

安装完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进行交互,包括如何连接数据库、创建表、更新表、删除表、建立索引等,希望能对开发者有所帮助。