百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

最全总结,聊聊 Python 数据处理全家桶(PgSQL篇)

ztj100 2025-03-30 23:25 77 浏览 0 评论

来源:AirPython

作者:星安果

1. 前言

大家好,我是安果!

PgSQL,全称为 PostgreSQL,是一款免费开源的关系型数据库

相比最流行的 Mysql 数据库,PgSQL 在可靠性、数据完整性、扩展性方面具有绝对的优势

本篇文章将聊聊如何使用 Python 操作 PgSQL 数据库

2. PgSQL 使用

Python 操作 PgSQL,需要先安装依赖包「 psycopg2

# 安装依赖包
pip3 install psycopg2

接下来,就可以使用 Python 来操作数据库了

2-1 数据库连接及游标对象

使用 psycopg2 中的「 connect() 」方法连接数据库,创建数据库连接对象及游标对象

import psycopg2

# 获得连接对象
# database:数据库名称
# user:用户名
# password:密码
# host:数据库ip地址
# port:端口号,默认为5432
conn = 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 = "INSERT INTO student (name,age) \
VALUES (%s, '%s')" % \
('xag',23)

# 方式二:参数分离
sql = """INSERT INTO student (name,age) VALUES (%s, %s)"""
# 参数
params = ('xag',23)

然后,使用游标对象执行 SQL

# 执行sql
# 注意:params可选,根据上面的参数方式来选择设置
cursor.execute(sql,[params])

接着,使用连接对象提交事务

# 事务提交
conn.commit()

最后,释放游标对象及数据库连接对象

# 释放游标对象及数据库连接对象
cursor.close()
conn.close()

2-3 查询数据

游标对象的 fetchone()、fetchmany(size)、fetchall() 这 3个函数即可以实现单条数据查询、多条数据查询、全部数据查询

# 获取一条记录
one_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 * FROM student where id = %s;"""

# 对应参数,参数结尾以逗号结尾
params = (1,)

# 执行SQL
cursor.execute(sql, params)

# 获取所有数据
datas = cursor.fetchall()
print(datas)

2-4 更新数据

更新操作和上面操作一样,唯一不同的是,执行完 SQL 后,需要使用连接对象提交事务,才能将数据真实更新到数据库中

def update_one(conn, cursor):
"""更新操作"""
# 更新语句
sql = """update student set name = %s where id = %s """
params = ('AirPython', 1,)

# 执行语句
cursor.execute(sql, params)

# 事务提交
conn.commit()

# 关闭数据库连接
cursor.close()
conn.close()

2-5 删除数据

删除数据同更新数据操作类似

def delete_one(conn, cursor):
"""删除操作"""
# 语句及参数
sql = """delete from student where id = %s """
params = (1,)

# 执行语句
cursor.execute(sql, params)

# 事物提交
conn.commit()

# 关闭数据库连接
cursor.close()
conn.close()

3. 最后

通过上面操作,可以发现 Python 操作 PgSQl 与 Mysql 类似,但是在原生 SQL 编写上两者还是有很多差异性

相关推荐

新手学Docker:挂载卷Volumes(docker挂载nfs卷)

默认情况下,在容器内创建的文件,都会保存在容器基于镜像之上的一个可读写层。但是,这一层是依赖于容器而存在的,当容器不存在时,这些数据也就不存在了。而且这些数据紧紧的耦合在容器内部,很难将这些数据导出。...

Docker命令最全详解(39个最常用命令)

Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令...

松勤软件测试:详解Docker,如何用portainer管理Docker容器

镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...

【Docker 新手入门指南】第十四章:Docker常用命令

以下Docker常用命令大全,涵盖容器、镜像、网络、数据卷及系统管理等核心操作,结合分类与示例助你快速掌握:一、容器生命周期管理...

Docker 一键清盘术,释放磁盘空间不求人

在日常开发和运维中,Docker容器化让我们的工作更高效,但不知不觉中,磁盘空间却被镜像、容器和卷悄悄吃掉。今天教你一套干净利落的Docker磁盘清理攻略,让你轻松腾出宝贵空间!一、快速查看磁盘...

第六节 Docker 容器核心操作与实践指南

一、镜像与容器的本质关系(一)镜像(Image)的核心特性静态模板:包含应用运行所需的所有依赖(系统库、运行时、配置文件等)不可变性:镜像构建完成后内容不可修改,确保环境一致性...

别再去找Docker命令了,你要的常用的全都在这

Docker常用命令集合给大家介绍一些常用的Docker命令,对你有帮助的同学建议收藏作为一个查询手册哦。Docker容器的一些命令按功能分类大致如下:Docker环境信息info、versio...

Docker 数据持久化最佳实践:Volume 使用全指南

你是不是也经常在使用Docker的时候,遇到“数据持久化”相关的困惑?容器删了,数据也跟着没了?今天就带你深入了解Docker的Volume机制,搞懂什么是Volume、怎么使用、存储在...

【Docker 新手入门指南】第十五章:常见故障排除

一、前期准备:收集关键信息在排查问题前,建议先获取以下系统数据,便于精准定位故障:...

Docker网络与iptables实战指南:从原理到安全加固

一、Docker网络核心原理:容器与iptables的“共生关系”Docker容器的网络能力依赖于Linux内核的两大核心技术:虚拟网络设备(vethpair、网桥)和iptables规则链。以默认...

别再docker exec了!盘点进入容器排错的5种“更优雅”姿势

一、dockerattach:直接“附身”容器的原始方法当容器日志疯狂刷屏时,dockerattach就像直接跳进正在行驶的汽车——能看到仪表盘数据,但方向盘不在你手上。这种直接附加到容器主进程的...

云计算核心技术Docker教程:Docker数据卷的使用

在生产环境中使用Docker,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束)或者需要在多个容器之间进行数据共享,需要将数据从宿主机挂载到容器中,这就会...

【开发技术】Mybatis中进行多表关联查询?性能是不是会变好呢?

Mybatis是一种基于Java的持久层框架,能够帮助我们操作数据库。在Mybatis中,进行多表关联的整合查询,需要使用嵌套查询或者使用ResultMap进行映射。下面,我们将从这两个方面来介绍多表...

Mybatis 批量更新数据 Mysql批量更新数据

通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更新。(2)一次性更新所有数据1批量更新相同的值不同的条件...

Mybatis 如何批量删除数据(mybatis批量merge)

Mybatis如何批量删除数据本期以最常用的根据id批量删除数据为例:接口设计1:List类型单参数IntegerdeleteByIds(List<Integer>ids);...

取消回复欢迎 发表评论: