用python实现pgSQL最基本操作:读写更新

以前没写过sql,后来由于项目需要简单了用了一点,sql的语法格式规范,还挺有趣。

1.安装psycopg2

python 操作pgSQL需要安装这个包,可以直接用pip3 install psycopg2即可。

2.读取整个表

#连接数据库需要提供相应的数据库名称、用户名、密码、地址、端口等信息
conn=psycopg2.connect(database=db,user=user,password=pw,host=host,port=port)
curs=conn.cursor()
    
select_sql="select * from table"        #从表格table中读取全表内容
curs.execute( select_sql)               #执行该sql语句
data = curs.fetchall()                  #获取数据
  
curs.close()                                    
conn.close()

3.读取表的某一字段

#连接数据库需要提供相应的数据库名称、用户名、密码、地址、端口等信息
conn=psycopg2.connect(database=db,user=user,password=pw,host=host,port=port)
curs=conn.cursor()
    
select_sql="select colname from table"        #从表格table中读取colname这一列
curs.execute(select_sql)               #执行该sql语句
data = curs.fetchall()                  #获取数据
  
curs.close()                                    
conn.close()

4.更新操作

更新是指对于表里已经有的数据,如果只更改符合条件的某行的某一列。

conn=psycopg2.connect(database=db,user=user,password=pw,host=host,port=port)
curs=conn.cursor()

#update_sql的操作是在表table中col_A=1同时col_B=2的行的col_C这一列的数据更新为3
update_sql="UPDATE table SET col_C=3,col_D=4 WHERE col_A=1 AND col_B=2"
curs.execute(update_sql)
conn.commit()

curs.close() 
conn.close()

5.根据更新结果判断是否需要写入操作

有时候,需要进行这样的操作:
如果满足某个条件的一行记录已经存在,就更新其某个值;如果满足条件的该记录不存在,则写入该行。
实现这个操作的方法有多个,我自己用的是先更新,根据更新影响的行数判断,如果影响的行数是0,则执行写入操作。

conn=psycopg2.connect(database=db,user=user,password=pw,host=host,port=port)
curs=conn.cursor()
   
update_sql="UPDATE table SET col_C=3 WHERE col_A=1 AND col_B=2"
insert_sql="insert into table (col_A,col_B,col_C) values {0}".format(str((1,2,3)))
curs.execute(update_sql)
#python这个psycopg2包自带这个属性rowcount,表示上一个操作影响的行数
#如果影响的行数为0,则表中没有满足条件的记录,则写入该行
if curs.rowcount==0:                 
         curs.execute(insert_sql)
conn.commit()

curs.close() 
conn.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值