Python操作PostgreSQL数据库的基本方法(增删改查)

 更新时间:2023年09月17日 10:51:21   作者:张六十zhangliushi  
PostgreSQL数据库是最常用的关系型数据库之一,最吸引人的一点是它作为开源数据库且具有可拓展性,能够提供丰富的应用,这篇文章主要给大家介绍了关于Python操作PostgreSQL数据库的基本方法,文中介绍了连接PostgreSQL数据库,以及增删改查,需要的朋友可以参考下

前言

本文分享使用Python操作PostgreSQL数据库的基本方法,包括数据库连接、增、删、改、查,供各位小伙伴参考。

一、连接PostgreSQL数据库

操作MySQL数据库主要使用psycopg2包,连接PostgreSQL数据库的语法为connect(IP, 端口, 用户名, 密码, 数据库名,编码格式)。具体代码如下:

import psycopg2
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)

二、增

(一)建表

以下语法中1、2、4、5为操作数据库的通用语法,下文其他步骤也会使用。

  • 创建mysql连接:pymysql.connect(),详见上文第一点
  • 创建游标:conn.cursor()
  • 编写建表语句,建表语句写在三引号中
    (1)create_sql = “”“xxx”“”
    (2)cursor.execute(create_sql)
  • 提交语句:conn.commit()
  • 关闭mysql连接:conn.close()
import psycopg2
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)
cursor = conn.cursor()
# 建表
create_sql = """
    CREATE TABLE xxx.yyy(
        id int
       ,name varchar(10)
    );
"""
cursor.execute(create_sql)
print("create successfully")
conn.commit()
conn.close()

(二)插入数据

  • 插入单条数据的语法和sql的插入类似,直接键值对插入,插入语句写在双引号中。具体代码如下:
import psycopg2
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)
cursor = conn.cursor()
# 插入
insert_sql = "INSERT INTO xx.yyy (id, name) VALUES (%s, '%s')" % (1, '张三')
cursor.execute(insert_sql)
print("insert successfully")
conn.commit()
conn.close()
  • 查询插入数据,适用于从数据库其他表查询关联后插入数据到新表。插入语句写在三引号中。具体代码如下:
import psycopg2
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)
cursor = conn.cursor()
# 插入
insert_sql = """
    DROP TABLE IF EXISTS xx.yyy;
    CREATE TABLE IF NOT EXISTS xx.yyy AS
    SELECT
        aa
       ,bb
    FROM xx.yyy
"""
cursor.execute(insert_sql)
print("insert successfully")
conn.commit()
conn.close()

三、删

(一)删表

直接删除表数据和表结构,其语法和SQL删表语法一致。具体代码如下:

import psycopg2
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)
cursor = conn.cursor()
# 删表
cursor.execute("DROP TABLE IF EXISTS xx.yyy")
conn.commit()
conn.close()

(二)删除表数据

只删除数据,不删除表结构。其语法和SQL删表数据语法一致。具体代码如下:

import psycopg2
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)
cursor = conn.cursor()
# 删表数据
cursor.execute("TRUCATE TABLE xx.yyy")
conn.commit()
conn.close()

三、改

(一)更新数据

将上文所建的yyy表中,“张三”改为“何老六”。具体代码如下:

import psycopg2
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)
cursor = conn.cursor()
cursor.execute("UPDATE xx.yyy SET name = '何老六' WHERE id = 1")
conn.commit()
conn.close()

(二)结果展示

四、查

(一)查询数据库表

直接使用pandas包查询数据库表,语法为read_sql(“select xxx from yyy”, con=数据库连接)。

import psycopg2
import pandas as pd
conn = psycopg2.connect(
    host='xxx',
    port='xxx',
    dbname='xxx',
    user='xxx',
    password='xxx'
)
df = pd.read_sql("select * from xx.yyy limit 100;", con=conn)
print(df)

总结

除了PostgreSQL数据库外,业界常用的数据库MySQL也可以使用Python进行操作,具体情况可参考作者的另一篇博客Python操作MySQL数据库

到此这篇关于Python操作PostgreSQL数据库的文章就介绍到这了,更多相关Python操作PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python PIL模块的基本使用

    python PIL模块的基本使用

    这篇文章主要介绍了python PIL模块的基本使用,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下
    2020-09-09
  • Python实现快速多线程ping的方法

    Python实现快速多线程ping的方法

    这篇文章主要介绍了Python实现快速多线程ping的方法,实例分析了Python多线程及ICMP数据包的发送技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python常见报错解决之SciPy和NumPy版本冲突

    Python常见报错解决之SciPy和NumPy版本冲突

    Scipy是基于Numpy的科学计算工具库,方便、易于使用、专为科学和工程设计,是一个用于数学、科学、工程领域的常用软件包,这篇文章主要给大家介绍了关于Python常见报错解决之SciPy和NumPy版本冲突的相关资料,需要的朋友可以参考下
    2024-03-03
  • python+ffmpeg视频并发直播压力测试

    python+ffmpeg视频并发直播压力测试

    这篇文章主要为大家详细介绍了python+ffmpeg视频并发直播压力测试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python hashlib和hmac模块使用方法解析

    Python hashlib和hmac模块使用方法解析

    这篇文章主要介绍了Python hashlib和hmac模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • python中时间模块的基本使用教程

    python中时间模块的基本使用教程

    这篇文章主要给大家介绍了关于python中时间模块的基本使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Python中实现结构相似的函数调用方法

    Python中实现结构相似的函数调用方法

    这篇文章主要介绍了Python中实现结构相似的函数调用方法,本文讲解使用dict和lambda结合实现结构相似的函数调用,给出了不带参数和带参数的实例,需要的朋友可以参考下
    2015-03-03
  • python 打印dict的key与value方式

    python 打印dict的key与value方式

    这篇文章主要介绍了python 打印dict的key与value方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • python输入中文的实例方法

    python输入中文的实例方法

    在本篇内容里小编给大家整理的是一篇关于python输入中文的实例方法,有需要的朋友们可以学习参考下。
    2020-09-09
  • openCV-Python笔记之解读图像的读取、显示和保存问题

    openCV-Python笔记之解读图像的读取、显示和保存问题

    这篇文章主要介绍了openCV-Python笔记之解读图像的读取、显示和保存问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论