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中X[:,0]和X[:,1]的用法

    Python中X[:,0]和X[:,1]的用法

    这篇文章主要介绍了Python中X[:,0]和X[:,1]的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • python 巡检脚本的项目实践

    python 巡检脚本的项目实践

    本文主要介绍了python 巡检脚本的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 详解Python对某地区二手房房价数据分析

    详解Python对某地区二手房房价数据分析

    这篇文章主要为大家介绍了Python数据分析某地区二手房房价,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python3序列化与反序列化用法实例

    python3序列化与反序列化用法实例

    这篇文章主要介绍了python3序列化与反序列化用法,实例分析了Python3使用pickle模块针对字符串进行序列化操作的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Python中subprocess介绍及如何使用详细讲解

    Python中subprocess介绍及如何使用详细讲解

    在实际开发过程中,我们经常会遇到需要从Python脚本中调用外部程序或脚本的场景,下面这篇文章主要给大家介绍了关于Python中subprocess介绍及如何使用详细讲解的相关资料,需要的朋友可以参考下
    2024-09-09
  • 使用python实现BLAST

    使用python实现BLAST

    最近在自学python,又用python实现了一下BLAST。 这次更新了打分函数如下,空位罚分改为-5,但不区分gap open 和 gap extend。
    2018-02-02
  • python进行参数传递的方法

    python进行参数传递的方法

    在本篇文章里小编给大家分享的是关于python进行参数传递的方法以及代码,需要的朋友们可以学习下。
    2020-05-05
  • python利用百度AI实现文字识别功能

    python利用百度AI实现文字识别功能

    这篇文章主要为大家详细介绍了python利用百度AI实现文字识别,主要涉及通用文字识别、网络图片文字识别、身份证识别等文字识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 初学Python函数的笔记整理

    初学Python函数的笔记整理

    这篇文章主要介绍了初学Python函数的整理笔记,包括一些基础的参数使用方法以及匿名函数等特性的使用,需要的朋友可以参考下
    2015-04-04
  • Pyhton中防止SQL注入的方法

    Pyhton中防止SQL注入的方法

    这篇文章主要介绍了Pyhton中防止SQL注入的方法,本文讲解的方法简单实用,需要的朋友可以参考下
    2015-02-02

最新评论