使用psycopg2连接postgresql,首先需要安装python psycopg2依赖包
# 下载 psycopg2 模块
pip install psycopg2
然后引用psycopg2,调用psycopg2.connect接口,实现postgresql连接,进而查询或更新postgresql数据。
注意:在插入数据时,需要commit提交。由于总是忘记,所以我是增删改查都会写上
import psycopg2
conn = psycopg2.connect(database="tables", user="postgres", password="***", host="127.0.0.1", port="5432")
cur = conn.cursor()
# 执行sql语句 查询
cur.execute("SELECT name, years from students")
# 获取所有
rows = cur.fetchall()
# 提交 , 关闭数据库
# 如果只是查询可以只是 conn .close()
# 如果是修改了数据库就要都写
conn .commit()
cur.close()
conn .close()
注意 : 如果在查询的时候附加了条件,比如只是查询某天的数据,或者取一条数据(pg可以存储json格式),那么就要使用 fetchone()[0]
# 获取的一条数据
row = cur.fetchone()[0]
注意 : 如果在表中的字段这样 , 那么我们在查询的时候,比如查询 2020-01-10 日期的学生数据
CREATE TABLE students
(
id serial primary key, # id
create_date date not null default current_date, # 创建时间
modified_date timestamp default current_timestamp, # 写入时间
modified_user varchar default current_user, # 所属者
data jsonb not null # 存储学生信息 , 比如 json中放全校学生的名字/年龄/成绩等
);
import psycopg2
conn = psycopg2.connect(database="tables", user="postgres", password="***", host="127.0.0.1", port="5432")
cur = conn.cursor()
date = "2020-01-10"
date_param = f'\'{date}\'' # 转个格式
# 执行sql语句 查询
cur.execute("SELECT data from students where create_date = {date_param}")
# 获取所有
student = cur.fetchone()[0]
# 提交 , 关闭数据库
# 如果只是查询可以只是 conn .close()
# 如果是修改了数据库就要都写
conn .commit()
cur.close()
conn .close()