# --coding:utf-8--
import pandas as pd
import yaml
from sqlalchemy import create_engine
import psycopg2 class ControlPGSQL:
def __init__(self, path):
'''
path:记录有pg数据库账号密码的yaml配置文件地址
'''
self.path = path def CreatePGengine(self):
'''
:return: PG链接
'''
with open(f"{self.path}", "r", encoding="utf-8") as config:
cfg = yaml.safe_load(config)
db_info = cfg['db_info']
con_database = create_engine(
'postgresql+psycopg2://{user}:{password}@{host}:{port}/{database}'.format(**db_info))
return con_database def ConPG(self):
with open(f"{self.path}", "r", encoding="utf-8") as config:
cfg = yaml.safe_load(config)
db_info = cfg['db_info']
conn = psycopg2.connect(database=db_info['database'],
user=db_info['user'],
password=db_info['password'],
host=db_info['host'],
port=db_info['port'],)
return conn def read_sql(self, sql):
'''
读取postgresSQL数据库中的表
:param sql: 数据库的链接指令
:return:表dataframe
'''
con_database = self.CreatePGengine()
# 从公司数据库读取 原始的入库 数据表
databaseData = pd.read_sql(sql, con=con_database)
return databaseData def run_read(self, mt_info):
'''
:param mt_info: sql的表名与字段,以及字段对应的重命名columns列表
:return: 数据表
'''
sql = "SELECT {field} FROM {modename}.{tablename} where {condition}".format(
**mt_info)
table = self.read_sql(sql)
table.columns = mt_info['columns'] return table def write_sql(self, sql):
'''
写入postgresSQL数据库中
:param sql: 数据库的链接指令
:return:
'''
con_database = self.ConPG()
cursor = con_database.cursor()
cursor.execute(sql) # 提交SQL命令
con_database.commit()

个人记录:连接、查询、写入PG数据库类文件的更多相关文章

  1. pg数据库data文件夹达到32G

    最近工作中遇到pg数据库data文件夹大小达到32G,大致的排查流程如下: 1.首先查看是哪个文件或者那些文件比较大: 2.根据文件的名称找到对应的数据表a: 3.确认数据表a中数据实际上只有3000 ...

  2. SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点

    mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...

  3. mysql/mariadb学习记录——连接查询(JOIN)

    //本文使用的数据表格//persons表中id_p为主键//orders表中id_o为主键,id_p为外键参考persons表中的id_p mysql> select * from perso ...

  4. MySQL8:连接查询

    连接查询 连接是关系型数据库模型的主要特点. 连接查询是关系型数据库中最主要的查询,主要包括内连接.外连接等通过联结运算符可以实现多个表查询. 在关系型数据库管理系统中,表建立时各种数据之间的关系不必 ...

  5. SQL2008和SQL2000可以跨服务器连接查询的测试实例

    测试目的: SQL2008 和 SQL2000 是否可以跨服务器连接查询 -- 测试环境: --A 虚拟机 XP ( IP : .0.0.213 )安装 SQL2000 个人版,并安装 SP4 补丁. ...

  6. mysql_数据查询_连接查询

    连接查询 1.连接(join) 也称θ连接,从两个关系的笛卡尔积中选择属性间满足一定条件的元组. 等值连接:θ为“=”的连接运算称为等值连接.从关系R和S的广义笛卡尔积中选取A.B属性值相等的元组. ...

  7. T-SQL——关于跨库连接查询

    目录 0. 同一台服务器不同数据库 1. 使用跨库查询函数--OpenDataSource() 2. 使用链接服务器(Linking Server) 3. 使用OpenDataSource()函数和链 ...

  8. JPA连接PG数据库时间类型查询报错的修改

    PG数据库中的时间格式规范: https://blog.csdn.net/sky_limitless/article/details/79527665 to_data 转换为 普通的时间格式 to_t ...

  9. MySQL入门第二天——记录操作与连接查询

    常见SQL语法,请参见w3school:http://www.w3school.com.cn/sql/sql_distinct.asp 易百教程:http://www.yiibai.com/sql/f ...

  10. 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串

    第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...

随机推荐

  1. Python3学习--正则表达式

    import rer = re.match("Chen\d+","Chen123ronghua123")r = re.match(".+", ...

  2. 什么是报表工具?和 EXCEL 有什么区别?

    报表是什么? 带数据的表格和图表就都是报表,像工资表,考勤表,成绩表,资产负载表等等都是报表. 那报表工具,顾名思义就是用来做报表的工具,那 Excel 是不是也算报表工具?广义上讲当然也算.但 IT ...

  3. webpack 配置热更新

    正文 代码 const path=require('path'); module.exports={ devtool:'', entry:{ entry:'./src/entry.js', entry ...

  4. node 父子进程传递对象

    背景 node的父子进程中可以传递这是肯定的,但是传递对象,这是一个稀奇的地方. code 发送 server 对象 sendHandle 参数可用于将一个 TCP server 对象句柄传给子进程, ...

  5. 使用 Docker 部署 instantbox 轻量级 Linux 系统

    1)instantbox 介绍 GitHub:https://github.com/instantbox/instantbox instantbox 是一款非常实用的项目,它能够让你在几秒内启动一个主 ...

  6. Bogus 实战:使用 Bogus 和 EFCore 生成模拟数据和种子数据【完整教程】

    引言 上一章我们介绍了在xUnit单元测试中用xUnit.DependencyInject来使用依赖注入,上一章我们的Sample.Repository仓储层有一个批量注入的接口没有做单元测试,今天用 ...

  7. 力扣41(java)-缺失的第一个正数(困难)

    题目: 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数. 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案. 示例 1: 输入:nums = [1,2,0 ...

  8. 力扣423(java)-从英文中重建数字(中等)

    题目: 给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9).按 升序 返回原始的数字. 示例 1: 输入:s = "owoztneoer"输出:&quo ...

  9. 阿里云基于全新 RocketMQ 5.0 内核的落地实践

    简介: 本篇文章的核心就消息架构以及产品能力的云原生化,介绍了阿里云是如何基于全新的 RocketMQ 5.0 内核做出自己的判断和演进,以及如何适配越来越多的企业客户在技术和能力方面的诉求. 前言 ...

  10. Spring Boot Admin 集成诊断利器 Arthas 实践

    简介: Arthas 是 Alibaba 开源的 Java 诊断工具,具有实时查看系统的运行状况:查看函数调用参数.返回值和异常:在线热更新代码:秒解决类冲突问题:定位类加载路径:生成热点:通过网页诊 ...