本文转载自微信公众号《AirPython》,作者邢安国。转载本文请联系AirPython公众号.一、前言PgSQL,全称PostgreSQL,是一个免费开源的关系型数据库。与最流行的Mysql数据库相比,PgSQL在可靠性、数据完整性、可扩展性等方面具有绝对优势。本文将讨论如何使用它。Python操作PgSQL数据库2.PgSQL使用Python操作PgSQL需要先安装依赖包“psycopg2”#安装依赖包pip3installpsycopg2接下来就可以使用Python操作数据库了2-1数据库连接和游标objects使用psycopg2中的“connect()”方法连接数据库,创建数据库连接对象和游标对象importpsycopg2#获取连接对象#database:数据库名#user:用户名#password:密码#host:数据库ip地址#port:端口号,默认为5432conn=psycopg2.connect(database="db_name",user="postgres",password="pwd",host="127.0.0.1",port="5432")#获取游标对象cursor=conn.cursor()得到游标对象后,可以执行SQL,然后操作数据库2-2插入数据首先编写插入数据的SQL语句和参数(可选)#构建SQL语句#方法一:直接带参数sql="INSERTINTOstudent(name,age)\VALUES(%s,'%s')"%\('xag',23)#方法二:参数分离sql??="""INSERTINTOStudent(name,age)VALUES(%s,%s)"""#parameterparams=('xag',23)然后,使用cursor对象执行SQL#Executesql#注意:params是可选的,按照上面的参数方法选择设置cursor.execute(sql,[params])然后,使用connection对象提交Transaction#Transaction提交onn.commit()最后释放游标对象和数据库连接对象#释放游标对象和数据库连接对象cursor.close()conn.close()2-3查询数据游标对象的三个函数fetchone()、fetchmany(size)、fetchall()可以实现单条数据查询、多条数据查询、全部数据查询#Getarecordone_data=cursor.fetchone()print(one_data)#获取2条记录many_data=cursor.fetchmany(2)print(many_data)#获取所有数据all_data=cursor.fetchall()print(all_data)需要注意的是条件查询和上面的插入操作类似,条件语句可以把参数隔开#条件查询SQL语句sql="""SELECT*FROMstudentwhereid=%s;"""#对应的参数,参数以逗号结尾params=(1,)#executeSQLcursor.execute(sql,params)#获取所有数据datas=cursor.fetchall()print(datas)2-4更新数据更新操作和上面的操作一样,唯一不同的是执行SQL之后,你需要使用连接对象提交事务来更新数据到数据库defupdate_one(conn,cursor):"""更新操作"""#更新语句sql="""updatestudentsetname=%swhereid=%s"""params=('AirPython',1,)#执行语句cursor.execute(sql,params)#事务提交conn.commit()#关闭数据库连接cursor.close()conn.close()2-5删除数据删除数据类似于更新数据操作defdelete_one(conn,cursor):"""删除操作"""#语句和参数sql="""deletefromstudentwhereid=%s"""params=(1,)#执行语句cursor.execute(sql,params)#事物提交conn.commit()#关闭数据库连接cursor.close()conn.close()3.最后,通过上面的操作可以发现,Python操作PgSQl和Mysql类似,但是两者在原生SQL的写法上还是有很多区别的。关于PgSQL操作的更多信息,请参考以下链接:https://www.postgresql.org/docs/14/index.html
