1、连接到PostgreSQL数据库并查询数据

首先引用psycopg2模块:

import psycopg2

然后就可以通过如下方式连接到PostgreSQL数据库并执行查询数据的SQL语句:

# database,user,password,host,port分别对应要连接的PostgreSQL数据库的数据库名、数据库用户名、用户密码、主机、端口信息,请根据具体情况自行修改
conn = psycopg2.connect(database="test",user="postgres",password="postgres",host="127.0.0.1",port="5432")
curs = conn.cursor()
# 执行查询命令
curs.execute("SELECT name,setting FROM pg_settings")

如果想要批量查询:

"""
将要批量查询的数据存为list:['1','2','3',,,]
作为一个tuple(list_)传入:('1','2','3',,,,)
查询结果是一个tuple格式的list:[(id值,content值),(),(),,,,,]
"""
sql_command = "select html_content_id, html_origin_content from {} where html_content_id in {};".format(postgres_table1,tuple(uid_list))
curs.execute(sql_command)
data = curs.fetchall()  # 结果为tuple的list  [(), (), ....]

2、获取查询结果

接着需要获取查询的结果,可以选择直接打印出来或者存放到文件中。

1)直接打印结果集

# 获取结果集的每一行
rows = cur.fetchall()
# 获取所有字段名
all_fields = cur.description
​
​
# 首先打印字段名
field_messages = []
for i in range(len(all_fields)):# 格式化输出结果,len参数是各列的显示宽度,可以指定常量,也可自定义函数进行获取。field_messages.append("{str:<{len}}".format(str=str(all_fields[i][0]), len=50))
​
field_message = "".join(field_messages)
print(field_message)
​
# 然后逐行打印结果集
for row in rows:row_messages = []for j in range(len(row)):# 格式化结果集row_messages.append("{str:<{len}}".format(str=str(row[j]), len=50))row_message = "".join(row_messages)print(row_message)

2)将结果集存放到文件中(以txt文件为例)

# 获取结果集的每一行
rows = cur.fetchall()
# 获取所有字段名
all_fields = cur.description
# 写入文件results.txt中,此处需要填写实际路径名
with open("results.txt", "w", encoding="utf-8") as f:# 首先写入字段名field_messages = []for i in range(len(all_fields)):# 格式化输出结果,len参数是各列的显示宽度,可以指定常量,也可自定义函数进行获取。field_messages.append("{str:<{len}}".format(str=str(all_fields[i][0]), len=50))field_message = "".join(field_messages)f.write(field_message + "\n")
​# 然后写入结果集for row in rows:row_messages = []for j in range(len(row)):# 格式化结果集row_messages.append("{str:<{len}}".format(str=str(row[j]), len=50))row_message = "".join(row_messages)f.write(row_message + "\n")

3、关闭数据库连接

所有操作完成之后需要关闭对PostgreSQL数据库的连接。

# 关闭连接
conn.close()

4、批量查询插入操作

conn = psycopg2.connect(database="数据库名", user="用户名", password="密码", host="ip地址如果是本机就写localhost)",port="端口号")
cur = conn.cursor()     # 用来进行操作sql语句的
​
# 例如 查询,可以传入一个元祖进行批量查询
sql = ''' select * from 表名 '''
cur.execute(zhu_sql)  # 执行sql语句
zhu_results = cur.fetchall()   # 得到所有查询结果 每条结果都是有个元祖
​
# 插入
​
shuju = [tuper([1,2],[1,2],[1,2])] # 元组中的列表中的元素个数必须与插入的sql中字段的个数相同
# 注意: %s 的个数必须与你想要插入的字段名的个数一致 且插入数据必须格式与数据库中定义的一致  不然会报错
cha_sql = '''insert into 表名(字段名,字段名)values(%s,%s)'
'''
cur.executemany(cha_sql , shuju ) #批量执行插入
conn.commit()  #对插入操作进行提交
**********# todo:这两步必须做  释放资源 不然 会卡死***********
cur.close()  #关闭游标
conn.close()  #关闭连接
​

4、PG数据库建立自增表:

实例

假定我们要创建一张 COMPANY 表,并创建下面几个字段:

runoobdb=# CREATE TABLE COMPANY(ID  SERIAL PRIMARY KEY,NAME           TEXT      NOT NULL,AGE            INT       NOT NULL,ADDRESS        CHAR(50),SALARY         REAL
);

现在往表中插入几条记录:

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Paul', 32, 'California', 20000.00 );
​
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Allen', 25, 'Texas', 15000.00 );
​
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Teddy', 23, 'Norway', 20000.00 );
​
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Mark', 25, 'Rich-Mond ', 65000.00 );

5、sudo docker exec -it 7f988ce3f2ee redis-cli

6、sudo apt --fix-broken install

sudo apt-get update

sudo apt-get upgrade

7、多线程传参数,args必须写成以下形式,只有一个也是

t = threading.Thread(target=search, args=(i,))

python--查询PG数据库相关推荐

  1. python查询oracle数据库_python针对Oracle常见查询操作实例分析

    本文实例讲述了python针对Oracle常见查询操作.分享给大家供大家参考,具体如下: 1.子查询(难): 当进行查询的时候,发现需要的数据信息不明确,需要先通过另一个查询得到, 此查询称为子查询: ...

  2. python查询mysql数据库_python针对mysql数据库的连接、查询、更新、删除操作示例...

    本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql ...

  3. python查询mysql数据库_用python操作mysql数据库(之简单查询操作)

    1.mysql安装 此处省略一万字....... 2.pip安装MySQLdb模块 sudo pip install mysql-python 3.简单代码#!/usr/bin/env python ...

  4. 用python读取pg数据库中的blob类型图片数据,转换存成jpg格式存到本地文件夹

    先啰嗦一下,热热身 在工作中,我们常见到数据库中的数据类型主要为char,varchar,text等,但是有时我们也会用blob格式来存储语音文件或者图像文件,在网上找了很多,都没找到合适的办法,只好 ...

  5. Linux查询pg数据库账号密码,PostgreSQL登录数据库

    添加新用户和新数据库以后,就要以新用户的名义登录数据库,这时使用的是psql命令. psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432 上面命令的参数含义 ...

  6. python 数据库查询结果邮件提醒_Python实现的查询mysql数据库并通过邮件发送信息功能...

    本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能.分享给大家供大家参考,具体如下: 这里使用Python查询mysql数据库,并通过邮件发送宕机信息. Python代码如下: ...

  7. mysql自带的邮件发送功能_Python实现的查询mysql数据库并通过邮件发送信息功能...

    本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能.分享给大家供大家参考,具体如下: 这里使用Python查询mysql数据库,并通过邮件发送宕机信息. Python代码如下: ...

  8. python怎么检查数据库实例能否链接_python pymysql链接数据库查询结果转为Dataframe实例...

    我就废话不多说了,大家还是直接看代码吧! import pymysql import pandas as pd def con_sql(db,sql): # 创建连接 db = pymysql.con ...

  9. Oracle 数据库sql语句查看字符集,PG数据库查询字符集方法

    [Oracle 数据库查询字符集] 查询出 NLS_NCHAR_CHARACTERSET 参数的值即是数据库的字符集. select * from nls_database_parameters; [ ...

  10. python 查询sqlserver 视图_SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例)...

    原标题:SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例) 本书提供Python+SQL Server案例 SQL Server教学大纲 一.课程的性质 ...

最新文章

  1. 两个单链表生成相加链表
  2. 设置计算机关机静音,Shortcuts 捷径控制 Windows 电脑:静音开关、音量调节、待机、关机...
  3. 【英语学习】【Daily English】U12 E-World L02 All you have to do is download this taxi app
  4. ApacheCN jQuery 译文集 20211121 更新
  5. ansible批量安装服务器思路
  6. DeepID1 分析
  7. greenplum 外部表 oracle,GREENPLUM使用技巧(一)- 使用外部表实现DBLINK功能
  8. 2022年,ICPC比赛、CCPC比赛、CCF-CSP考试、蓝桥杯比赛、天梯赛日程
  9. atitit.身份认证解决方案attilax总结
  10. 创建3层的服务模板 (2)--- App-V package 和 Application Profile
  11. python - jpg图片转pdf
  12. Java内存模型(Java并发编程的艺术整理)
  13. 什么从什么写短句_什么是什么,能什么写句子补充完整
  14. 关于微信公众号回复消息乱码的问题
  15. STM3日常使用笔记——启动方式
  16. 神经网络与深度学习笔记汇总五
  17. 果园机器人作文开头_果园机器人作文200
  18. 浅谈电子商务的数据分析
  19. BIOS 存在安全漏洞,苹果戴尔均中招
  20. 部署next cloud

热门文章

  1. 分布式技术(2)大型网站架构利器-CDN技术
  2. [ CSOL ] - zihao + 自适应 + 文字滚动 + 媒体查询 + fullpage + 手风琴 + 延时动画
  3. 外接显示器,多屏幕显示,出现鼠标移动缓慢,卡顿
  4. 基于单片机的交通信号灯控制系统设计
  5. 毛星云opencv之DrawLine函数写法
  6. CISSP第一章:安全与风险管理知识点
  7. 如何实现流水号二维码批量生成
  8. B2C商城系统源码 单商户B2C商城系统源码
  9. 高频电子线路实验箱QY-JXSY25
  10. MYSQL数据库中导入中国各个省份编号和省份