基于postgreSql 常用查詢小結(jié)
1. 日期格式轉(zhuǎn)化(參考)
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形式存儲(chǔ),求時(shí)間差時(shí)轉(zhuǎn)化為時(shí)間戳再相減得到結(jié)果(s)
2. select * from (中間結(jié)果) t
select count(*) from ( select chkid, count(*) from abc_table GROUP BY chkid) t
補(bǔ)充:自己寫(xiě)的postgreSQL查詢語(yǔ)句
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
import psycopg2
class PostgreConn():
'''
數(shù)據(jù)庫(kù)連接類
'''
def __init__(self, database, user, password, host, port):
self.conn = psycopg2.connect(database=database, user=user, password=password, host=host, port=port)
print('數(shù)據(jù)庫(kù)連接成功')
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('數(shù)據(jù)庫(kù)連接關(guān)閉')
def select_sql(table, keys, conditions, isdistinct=0):
'''
生成select的sql語(yǔ)句
@table,查詢記錄的表名
@key,需要查詢的字段
@conditions,插入的數(shù)據(jù),字典
@isdistinct,查詢的數(shù)據(jù)是否不重復(fù)
'''
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: 數(shù)據(jù)庫(kù)fetchall的結(jié)果
:param key_list: 查詢字段的keys
:return:
format SQL Result 格式化數(shù)據(jù)庫(kù)查詢的結(jié)果,轉(zhuǎn)化成包含多個(gè)字典的列表格式,即((1,2),(3,4))->[{"key1":1,"key2":2},{"key1":3,"key2":4}]
返回 @dict 查詢結(jié)果
'''
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()
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Docker安裝PostgreSQL數(shù)據(jù)庫(kù)的詳細(xì)步驟
這篇文章主要介紹了Docker安裝PostgreSQL數(shù)據(jù)庫(kù)的詳細(xì)步驟,包括啟動(dòng)PostgreSQL容器、獲取容器的IP地址、啟動(dòng)一個(gè)新的CentOS容器、在CentOS容器中安裝PostgreSQL客戶端、通過(guò)psql客戶端連接到PostgreSQL容器和在PostgreSQL中執(zhí)行SQL操作等內(nèi)容,需要的朋友可以參考下2024-10-10
PostgreSql 導(dǎo)入導(dǎo)出sql文件格式的表數(shù)據(jù)實(shí)例
這篇文章主要介紹了PostgreSql 導(dǎo)入導(dǎo)出sql文件格式的表數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
postgresql數(shù)據(jù)庫(kù)執(zhí)行計(jì)劃圖文詳解
了解PostgreSQL執(zhí)行計(jì)劃對(duì)于程序員來(lái)說(shuō)是一項(xiàng)關(guān)鍵技能,執(zhí)行計(jì)劃是我們優(yōu)化查詢,驗(yàn)證我們的優(yōu)化查詢是否確實(shí)按照我們期望的方式運(yùn)行的重要方式,這篇文章主要給大家介紹了關(guān)于postgresql數(shù)據(jù)庫(kù)執(zhí)行計(jì)劃的相關(guān)資料,需要的朋友可以參考下2024-01-01
PostgreSQL配置遠(yuǎn)程連接簡(jiǎn)單圖文教程
這篇文章主要給大家介紹了關(guān)于PostgreSQL配置遠(yuǎn)程連接的相關(guān)資料,PostgreSQL是一個(gè)功能非常強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
postgresql分頁(yè)數(shù)據(jù)重復(fù)問(wèn)題的深入理解
這篇文章主要給大家介紹了關(guān)于postgresql分頁(yè)數(shù)據(jù)重復(fù)問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用postgresql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Postgresql?REGEXP開(kāi)頭的正則函數(shù)用法圖文詳解
正則表達(dá)式是指一個(gè)用來(lái)描述或者匹配一系列符合某個(gè)句法規(guī)則的字符串的單個(gè)字符串,下面這篇文章主要給大家介紹了關(guān)于Postgresql?REGEXP開(kāi)頭的正則函數(shù)用法的相關(guān)資料,需要的朋友可以參考下2024-02-02
解決postgreSql 將Varchar類型字段修改為Int類型報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決postgreSql 將Varchar類型字段修改為Int類型報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
PostgreSQL使用SQL實(shí)現(xiàn)俄羅斯方塊的示例
基于PostgreSQL實(shí)現(xiàn)的俄羅斯方塊游戲項(xiàng)目Tetris-SQL,通過(guò)純SQL代碼和數(shù)據(jù)庫(kù)操作重構(gòu)了經(jīng)典游戲邏輯,展現(xiàn)了SQL語(yǔ)言的圖靈完備性和技術(shù)潛力,本文介紹PostgreSQL使用SQL實(shí)現(xiàn)俄羅斯方塊的示例,感興趣的朋友一起看看吧2022-04-04

