python--查询PG数据库
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数据库相关推荐
- python查询oracle数据库_python针对Oracle常见查询操作实例分析
本文实例讲述了python针对Oracle常见查询操作.分享给大家供大家参考,具体如下: 1.子查询(难): 当进行查询的时候,发现需要的数据信息不明确,需要先通过另一个查询得到, 此查询称为子查询: ...
- python查询mysql数据库_python针对mysql数据库的连接、查询、更新、删除操作示例...
本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql ...
- python查询mysql数据库_用python操作mysql数据库(之简单查询操作)
1.mysql安装 此处省略一万字....... 2.pip安装MySQLdb模块 sudo pip install mysql-python 3.简单代码#!/usr/bin/env python ...
- 用python读取pg数据库中的blob类型图片数据,转换存成jpg格式存到本地文件夹
先啰嗦一下,热热身 在工作中,我们常见到数据库中的数据类型主要为char,varchar,text等,但是有时我们也会用blob格式来存储语音文件或者图像文件,在网上找了很多,都没找到合适的办法,只好 ...
- Linux查询pg数据库账号密码,PostgreSQL登录数据库
添加新用户和新数据库以后,就要以新用户的名义登录数据库,这时使用的是psql命令. psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432 上面命令的参数含义 ...
- python 数据库查询结果邮件提醒_Python实现的查询mysql数据库并通过邮件发送信息功能...
本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能.分享给大家供大家参考,具体如下: 这里使用Python查询mysql数据库,并通过邮件发送宕机信息. Python代码如下: ...
- mysql自带的邮件发送功能_Python实现的查询mysql数据库并通过邮件发送信息功能...
本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能.分享给大家供大家参考,具体如下: 这里使用Python查询mysql数据库,并通过邮件发送宕机信息. Python代码如下: ...
- python怎么检查数据库实例能否链接_python pymysql链接数据库查询结果转为Dataframe实例...
我就废话不多说了,大家还是直接看代码吧! import pymysql import pandas as pd def con_sql(db,sql): # 创建连接 db = pymysql.con ...
- Oracle 数据库sql语句查看字符集,PG数据库查询字符集方法
[Oracle 数据库查询字符集] 查询出 NLS_NCHAR_CHARACTERSET 参数的值即是数据库的字符集. select * from nls_database_parameters; [ ...
- python 查询sqlserver 视图_SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例)...
原标题:SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例) 本书提供Python+SQL Server案例 SQL Server教学大纲 一.课程的性质 ...
最新文章
- 两个单链表生成相加链表
- 设置计算机关机静音,Shortcuts 捷径控制 Windows 电脑:静音开关、音量调节、待机、关机...
- 【英语学习】【Daily English】U12 E-World L02 All you have to do is download this taxi app
- ApacheCN jQuery 译文集 20211121 更新
- ansible批量安装服务器思路
- DeepID1 分析
- greenplum 外部表 oracle,GREENPLUM使用技巧(一)- 使用外部表实现DBLINK功能
- 2022年,ICPC比赛、CCPC比赛、CCF-CSP考试、蓝桥杯比赛、天梯赛日程
- atitit.身份认证解决方案attilax总结
- 创建3层的服务模板 (2)--- App-V package 和 Application Profile
- python - jpg图片转pdf
- Java内存模型(Java并发编程的艺术整理)
- 什么从什么写短句_什么是什么,能什么写句子补充完整
- 关于微信公众号回复消息乱码的问题
- STM3日常使用笔记——启动方式
- 神经网络与深度学习笔记汇总五
- 果园机器人作文开头_果园机器人作文200
- 浅谈电子商务的数据分析
- BIOS 存在安全漏洞,苹果戴尔均中招
- 部署next cloud
热门文章
- 分布式技术(2)大型网站架构利器-CDN技术
- [ CSOL ] - zihao + 自适应 + 文字滚动 + 媒体查询 + fullpage + 手风琴 + 延时动画
- 外接显示器,多屏幕显示,出现鼠标移动缓慢,卡顿
- 基于单片机的交通信号灯控制系统设计
- 毛星云opencv之DrawLine函数写法
- CISSP第一章:安全与风险管理知识点
- 如何实现流水号二维码批量生成
- B2C商城系统源码 单商户B2C商城系统源码
- 高频电子线路实验箱QY-JXSY25
- MYSQL数据库中导入中国各个省份编号和省份