python连接pg数据库并实现数据库的写入及查询

1、安装psycopg2

pip install psycopg2

2、 连接pg数据库,获取游标

import psycopg2
conn = psycopg2.connect(database='CBRimgclassify', user='postgres', password='******', host='localhost', port='5432')
    # 游标
cur = conn.cursor()

3、创建数据库

其中,引号里边是数据库语言,AttributeCharacteristics为创建表时取得名字,blue\red\nir等是列名,每个列名后边都要规定好对应的数据类型,这里我设置全为整数型int,execute表示执行数据库语言函数,每次执行时要提交conn.commit()命令,否则不会运行。

constraint uk_tbl_unique_a_b unique(blue,green,red,nir,swir1,swir2,class)确保每一行没有重复的数据。

cur.execute('create table AttributeCharacteristics(blue int,green int,red int,nir int,swir1 int,swir2 int,class int,constraint uk_tbl_unique_a_b unique(blue,green,red,nir,swir1,swir2,class));')
conn.commit()

4、插入数据到数据库

AttributeCharacteristics为表名,%s对应该表的每一列,这里要注意执行函数由execute()变成了executemany(),它们二者的作用都是用来执行数据库语言操作的函数,不同之处在于execute()用来实现单行操作,executemany()用来实现多行操作,具体选择哪一个取决于你要插入的数据是多行还是单行。

这里我的data为((63,31,35,67,82,35,1),(63,30,35,67,82,35,1),(62,30,35,67,82,35,1)...)

注:data必须是一个元组tuple类型。为了确保data是一个元组,用函数tuple(data)将data数据类型转换为tuple。

insertData = 'insert into AttributeCharacteristics values (%s,%s,%s,%s,%s,%s,%s)'
cur.executemany(insertData, data)

5、查询数据库中的数据

fetchall()返回多个元组,一个元组也就是一条行记录(row),多个元组就是多条行记录。

cur.execute("SELECT * FROM AttributeCharacteristics;")
rows = cur.fetchall()  # all rows in table
for i in rows:
    print(i)
conn.commit()

6、关闭数据库,释放内存

cur.close()
conn.close()

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值