基于postgreSql 常用查询小结

 更新时间:2021年01月26日 17:19:26   作者:jihite  
这篇文章主要介绍了基于postgreSql 常用查询小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1. 日期格式转化(参考

select beg_time, end_time, extract(epoch from to_timestamp(end_time,'yyyy-mm-dd-HH24-MI-SS-US'))-extract(epoch from to_timestamp(beg_time,'yyyy-mm-dd-HH24-MI-SS-US')) from cdb_all_iu_data where beg_time > '2017-09-21' 

注:beg_time, end_time以TEXT形式存储,求时间差时转化为时间戳再相减得到结果(s)

2. select * from (中间结果) t

select count(*) from (
select chkid, count(*) from abc_table GROUP BY chkid) t

补充:自己写的postgreSQL查询语句

我就废话不多说了,大家还是直接看代码吧~

import psycopg2 
class PostgreConn():
  '''
  数据库连接类
  '''
  def __init__(self, database, user, password, host, port):
    self.conn = psycopg2.connect(database=database, user=user, password=password, host=host, port=port)
    print('数据库连接成功')
    self.cur = self.conn.cursor()
    self.rows = None
 
  def cur(self):
    return self.cur()
 
  def execute(self, sql, fetchone=0):
    self.cur.execute(sql)
    if fetchone:
      self.rows = self.cur.fetchone()
    else:
      self.rows = self.cur.fetchall()
    return self.rows
 
  def close(self):
    self.cur.close()
    self.conn.close()
    print('数据库连接关闭') 
 
def select_sql(table, keys, conditions, isdistinct=0):
  '''
    生成select的sql语句
  @table,查询记录的表名
  @key,需要查询的字段
  @conditions,插入的数据,字典
  @isdistinct,查询的数据是否不重复
  '''
  if isdistinct:
    sql = 'SELECT distinct %s ' % ",".join(keys)
  else:
    sql = 'SELECT %s ' % ",".join(keys)
  sql += ' from %s ' % table
  if conditions:
    sql += ' WHERE %s ' % dict_str_and(conditions)
  return sql 
 
def dict_str_and(dictin):
  '''
  将字典变成,key='value' and key='value'的形式
  '''
  tmplist = []
  for k, v in dictin.items():
    tmp = "%s='%s'" % (str(k), str(v))
    tmplist.append(' ' + tmp + ' ')
  return ' and '.join(tmplist) 
 
def fSqlResult(r,key_list):
  '''
  :param r: 数据库fetchall的结果
  :param key_list: 查询字段的keys
  :return:
  format SQL Result 格式化数据库查询的结果,转化成包含多个字典的列表格式,即((1,2),(3,4))->[{"key1":1,"key2":2},{"key1":3,"key2":4}]
  返回 @dict 查询结果
  '''
  mlist=[]
  l=len(key_list)
  if r:
    for item in r:
      tmp={}
      for i in range(l):
        tmp[key_list[i]]=str(item[i])
      mlist.append(tmp)
  return mlist 
 
conn = PostgreConn('settle', 'admin', 'settle8', '123.57.285.89', '5432')
key_list = ['user_id']
sql = select_sql('st_user', key_list, {'phone': '138****'})
print(sql)
r = conn.execute(sql)
re = fSqlResult(r, key_list)
print(re)
conn.close()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Docker安装PostgreSQL数据库的详细步骤

    Docker安装PostgreSQL数据库的详细步骤

    这篇文章主要介绍了Docker安装PostgreSQL数据库的详细步骤,包括启动PostgreSQL容器、获取容器的IP地址、启动一个新的CentOS容器、在CentOS容器中安装PostgreSQL客户端、通过psql客户端连接到PostgreSQL容器和在PostgreSQL中执行SQL操作等内容,需要的朋友可以参考下
    2024-10-10
  • PostgreSql 导入导出sql文件格式的表数据实例

    PostgreSql 导入导出sql文件格式的表数据实例

    这篇文章主要介绍了PostgreSql 导入导出sql文件格式的表数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql数据库执行计划图文详解

    postgresql数据库执行计划图文详解

    了解PostgreSQL执行计划对于程序员来说是一项关键技能,执行计划是我们优化查询,验证我们的优化查询是否确实按照我们期望的方式运行的重要方式,这篇文章主要给大家介绍了关于postgresql数据库执行计划的相关资料,需要的朋友可以参考下
    2024-01-01
  • GP如何查询并删除重复数据

    GP如何查询并删除重复数据

    这篇文章主要介绍了GP如何查询并删除重复数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • PostgreSQL配置远程连接简单图文教程

    PostgreSQL配置远程连接简单图文教程

    这篇文章主要给大家介绍了关于PostgreSQL配置远程连接的相关资料,PostgreSQL是一个功能非常强大的关系型数据库管理系统(RDBMS),文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • postgresql分页数据重复问题的深入理解

    postgresql分页数据重复问题的深入理解

    这篇文章主要给大家介绍了关于postgresql分页数据重复问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用postgresql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • PostgreSQL的中文拼音排序案例

    PostgreSQL的中文拼音排序案例

    这篇文章主要介绍了PostgreSQL的中文拼音排序案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Postgresql REGEXP开头的正则函数用法图文详解

    Postgresql REGEXP开头的正则函数用法图文详解

    正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串,下面这篇文章主要给大家介绍了关于Postgresql REGEXP开头的正则函数用法的相关资料,需要的朋友可以参考下
    2024-02-02
  • 解决postgreSql 将Varchar类型字段修改为Int类型报错的问题

    解决postgreSql 将Varchar类型字段修改为Int类型报错的问题

    这篇文章主要介绍了解决postgreSql 将Varchar类型字段修改为Int类型报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL使用SQL实现俄罗斯方块的示例

    PostgreSQL使用SQL实现俄罗斯方块的示例

    基于PostgreSQL实现的俄罗斯方块游戏项目Tetris-SQL,通过纯SQL代码和数据库操作重构了经典游戏逻辑,展现了SQL语言的图灵完备性和技术潜力,本文介绍PostgreSQL使用SQL实现俄罗斯方块的示例,感兴趣的朋友一起看看吧
    2022-04-04

最新评论