postgresqlpython3
Ⅰ postgresql 查看有哪些表
1. 查詢表名稱
在psql狀態下查詢表名稱:dt
SQL方式查看錶名稱:
SELECTtablenameFROMpg_tables;
SELECT viewname FROM pg_views
WHERE schemaname ='public'
PostgreSQL獲取資料庫中所有view名視圖
SELECT viewname FROM pg_views
WHERE schemaname ='public'
2. 查詢表結構
在psql狀態下查詢表結構 dtablename
SQL方式查看錶結構
SELECT a.attnum,
a.attname AS field,
t.typname AS type,
a.attlen AS length,
a.atttypmod AS lengthvar,
a.attnotnull AS notnull,
b.description AS comment
FROM pg_class c,
pg_attribute a
LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,
pg_type t
WHERE c.relname = 'udoc_saldiscount'
and a.attnum > 0
and a.attrelid = c.oid
and a.atttypid = t.oid
ORDER BY a.attnum;
(1)postgresqlpython3擴展閱讀:
PostgreSQL存儲系統是由以下幾個子模塊所構成的:
1)頁面管理子模塊:對PostgreSQL緩沖區頁面的組織結構進行定義以及提供頁面操作的方法。
2)緩沖區管理子模塊:管理PostgreSQL的緩沖區,包括本地緩沖區和共享緩沖區。
3)存儲設備管理子模塊:資料庫記錄是存儲在存儲介質上的,存儲設備管理子模塊將屏蔽不同物理存儲設備(塊設備,流設備)介面函數的差異,向上層緩沖區管理子模塊提供統一的訪問介面函數。
4)文件管理子模塊:一般的操作系統對一個進程允許打開的文件數是有限制的,而PostgreSQL伺服器有些時候需要打開的文件數是很多的,因此PostgreSQL文件管理子模塊自身為了突破這個瓶頸,封裝了文件的讀寫操作。
Ⅱ python postgresql 哪個好
python操作資料庫PostgreSQL
1.簡述
python可以操作多種資料庫,諸如SQLite、MySql、PostgreSQL等,這里不對所有的資料庫操作方法進行贅述,只針對目前
項目中用到的PostgreSQL做一下簡單介紹,主要包括python操作資料庫插件的選擇、安裝、簡單使用方法、測試連接資料庫成功。
2.資料庫操作插件的選擇
PostgreSQL至少有三個python介面程序可以實現訪問,包括PsyCopg、PyPgSQL、PyGreSQL(PoPy已經整合在PyGreSQL中),三個介面程序各有利弊,需要根據實踐選擇最適合項目的方式。
推薦使用PsyCopg,對python開發框架的兼容性都很好,本文中我們只討論這個插件。
3.PsyCopg的下載
官網下載psycopg2-2.5.1.tar.gz:http://initd.org/psycopg/
本文使用windows系統開發,未使用官網版本,選擇psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe版,地址:http://vdisk.weibo.com/s/Cd8pPaw56Ozys
4.PsyCopg的安裝
直接exe,根據提示安裝即可.
5.PsyCopg的使用
py文件代碼:
__author__ = 'qiongmiaoer'
import psycopg2
# 資料庫連接參數
conn = psycopg2.connect(database="platoon", user="postgres", password="postgres", host="192.168.10.80", port="5432")
cur = conn.cursor()
cur.execute("CREATE TABLE test(id serial PRIMARY KEY, num integer,data varchar);")
# insert one item
cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (1, 'aaa'))
cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (2, 'bbb'))
cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (3, 'ccc'))
cur.execute("SELECT * FROM test;")
rows = cur.fetchall() # all rows in table
print(rows)
for i in rows:
print(i)
conn.commit()
cur.close()
conn.close()
可參考psycopg官方文檔,介紹postgresql的使用
http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries
6. 輸出結果
"C:\Program Files (x86)\Python275\python.exe" E:/PycharmProjects/psycopgPyCharm/xiaoyu/temp.py
[(1, 1, 'aaa'), (2, 2, 'bbb'), (3, 3, 'ccc')]
(1, 1, 'aaa')
(2, 2, 'bbb')
(3, 3, 'ccc')
Process finished with exit code 0
7.分析
在插件psyCopg安裝後,在python命令下import
psycopg2,即可使用psycopg2中的方法對資料庫,根據測試結果的輸出可以看到我們成功地連接到了資料庫,創建了名為test的table,
添加了三條數據,並成功讀取和輸出數據,最後將查詢到的數據輸出print出來。
ps:
項目環境
windows8
python2.7.5
pyCharm2.7.3(開發環境)
psycopg2-2.4.2(插件)
Ⅲ MySQL 和 PostgreSQL 哪個更適合做金融資料庫
金融資料庫的需求:
高效存儲和檢索大量時間序列數據和橫截面數據
這兩個 資料庫都能存儲 時間序列數據, 但不是 最高效的。支持存儲和檢索大段文本數據
MySQL 和其他大部分關系型資料庫的文本檢索能力不強,用 LIKE 效率低,只能 硬匹配,PgSQL 提供全文檢索功能 ( PgSQL 數據類型 包含 Text Search Types ),這是 PgSQL 很好的特性,可以充當輕量級搜索引擎。對R和Python有穩定高效的介面
MySQL 和 PgSQL 這方面都沒問題, 但 如果是 Python3, PgSQL 的 psycopg2(毫無爭議的就是這個adapter) 穩定高效, 而MySQL的 Python3 adapter 比較多,相對沒有 Python2 的穩定或高效。具有一定存儲和檢索非結構化數據(例如圖結構)的能力
一般情況下 圖形結構不做轉換是很難直接存到資料庫的吧,我猜你說的非結構化數據 是樹形結構吧,可以用 JSON 格式存儲, MySQL 和 PgSQL 都提供 JSON 格式的存儲功能,不同的是 MySQL 5.7 才有這個特性(當前最新版是5.7,也就是說近一兩年才有的),而 PgSQL ( 當前最新版是9.6 ) 從 9.2 加入了 JSON Type, 這個特性至今已經相當成熟了。另外 JSON 格式不能滿足你的話, PgSQL 還提供 XML 格式。
有好用易上手的GUI
Navicat 和 DataGrip 都支持 這兩個資料庫, 願意花錢這個不是問題。
提供遠程訪問功能
遠程訪問,這么基本的功能肯定都有,就不用多說了吧
安全性高
這個不好說了, 看你們 DBA 和運維的實力咯(不過 MySQL 人好招)
資料庫本身有能力處理復雜業務邏輯
MySQL 相對比較適合 簡單粗暴的業務邏輯
PgSQL 處理復雜業務邏輯 有優勢
綜上, PgSQL 更適合。
Ⅳ python3.6安裝psycopg
今天打算寫一個定時寫入資料庫的Python測試程序,採用的資料庫是postgresql,因此需要安裝psycopg2。系統是windows的,安裝中也出了一些亂七八糟的問題,究其原因還是本人第一次在windows下面安裝python模塊,對此類問題沒有一個系統性的認識造成的。下面給出在此類安裝中可能存在的一些問題的解決方法:
python模塊的安裝包最重要的就是setup.py,一般來說setup.py文件的使用如下:
% python setup.py build #編譯
% python setup.py install #安裝
% python setup.py sdist #製作分發包
% python setup.py bdist_wininst #製作windows下的分發包
% python setup.py bdist_rpm
python是一種解釋性語言,假如包里全為python文件其實拷貝到LIb\site-packages下基本就可以,setup.py無非也就是執行相關內容,然而對於包括一部分是C語言編寫的安裝包就會出現問題了。linux下面基本不存在問題,因為gcc編譯支持非常好。在windows下面vc6,7,8,9,10,11,12,13之間兼容性都不好,而每一個Python版本對應一個vc的編譯環境。比如python2.7默認會去找vc9.0的編譯環境,但是現在裝vs2008的已經不多了吧。如果沒有VS90COMNTOOLS環境變數,安裝就會有一個unable to find vcvarsall.bat錯誤解決方法有幾個:
第一,安裝mingw,編譯時使用python setup.py build –compiler=mingw32;
第二,設置環境變數VS90COMNTOOLS,可以臨時設置SET VS90COMNTOOLS=VS100COMNTOOLS vc10,SET VS90COMNTOOLS=VS110COMNTOOLS vc11。。。以此類推;
對於psycopg2則還需要先安裝postgresql(似乎linux下可以只安裝postgres-devel),另外需要把其bin目錄設為環境變數,使其可以訪問libpq.dll及其依賴庫。設置了這些之後基本psycopg2就可以正常工作了,測試成功的標志就是import psycopg2 不出錯就表示安裝成功了。