psycopg2使用大全

2021-09-17 01:22:17 字數 4109 閱讀 8494

之前寫過python連線postgresql的方法,今天在網上詳細總結了一下psycopg2的使用方法

使用*.ini檔案(python的configparser包可以解析這種型別的配置檔案)儲存資料庫連線的配置資訊。

使用psycopg2.connect函式獲得connection物件。

使用connection物件建立cursor物件。

使用cursor物件執行sql語句提交或者回滾transaction。

使用cursor物件fetchone獲得查詢結果。

關閉cursor物件和connection物件。

過程:構造建表的sql語句

呼叫psycopg2.connect()方法獲得connection物件

呼叫connection.cursor()方法獲得cursor物件

呼叫cursor.execute()方法執行sql語句

呼叫connection.commit方法提交事務

呼叫cursor.close()和connection.close()方法關閉連線

構造插入語句, 使用%s作為佔位符,執行時psycopg2會用值智慧型替換掉佔位符。可以新增returning字句,來得到自動生成的字段值。

同建立資料表的2,3。獲得connection物件和cursor物件

使用cursor.execute方法來插入一行,使用cursor.executemany方法來插入多行。 execute方法的第乙個引數是sql語句,第二個引數是值的tuple。executemany方法的第乙個引數是sql語句,第二個引數是list of tuple。

如果在1中使用了returning子句,可以使用cursor.fetchone方法,來獲得返回的自動生成欄位的值。

同上5同上6

基本上和插入行相同。

使用cursor.rowcount屬性來獲得受影響的行的數目。

connection物件負責管理事務。當你第一次使用cursor.execute方法執行sql語句的時候事務開啟,這以後的所有sql語句都在這個事務中執行,直到connection.commit或者connection.rollback或者del connection或者connection.close被呼叫,事務才結束。

乙個簡單的select語句可能會開啟乙個事務並且對相應的**加鎖,所以如果你是在開發乙個長時間執行的應用,而且乙個連線長時間不使用,那麼你需要呼叫commit或者rollback方法結束事務,避免不必要的問題。

使用connection.autocommit來控制事務

從psycopg2.5開始,connection和cursor都是context manager物件,可以在with ... as ...語句中使用。值得注意的是,離開with語句後,connection物件不會被close,它只是結束提交或者回滾事務。所以可以在多個with語句中使用connection物件。

使用cursor.callproc('function name', tuple), 函式的第乙個引數是儲存過程的名字,函式的第二個引數是實參tuple。這個呼叫和cursor.execute('select * from functionanme(%s)', tuple)相同。

可以使用cursor.fetchone, cursor.fetchmany, cursor.fetchall來獲得返回值。

使用psycopg2.binary物件和postgresql的bytea資料型別對應,用於儲存二進位制資料。

以下這個例子演示了二進位制資料的訪問。

read_blob(1, './img/')查詢資料和其它操作類似。

可以使用cursor.fetchone, cursor.fetchall, cursor.fetchmany(size=cursor.arraysize)方法來返回查詢結果。fetchone返回乙個tuple或者none, fetchall返回乙個list of tuple,如果沒有結果則返回乙個空的tuple。fetchmany返回list of tuple, list的長度由size引數決定,size的預設值是cursor.arraysize, 如果沒有結果可以返回,那麼返回乙個空的list。

和更新資料類似

可以使用cursor.rowcount來獲得刪除的行數目。

使用MinGW編譯Psycopg2

posted by daniele varrazzo on june 5,2011 使用mingw編譯psycopg2 傭工7001 2012.2 我的目的是在windows系統下使用mingw和postgresql客戶端編譯安裝psycopg。我使用了giovanni bajo封裝的mingw g...

Ubuntu安裝psycopg2小記

在windows上和linux上安裝psycopg2都遇到了點小插曲,記錄如下 windows下 2.解壓 3.執行python setup.py install報錯 解決辦法 官網提供了windows版本安裝包的辦法,詳見 ubuntu linux下 2.解壓 3.執行python setup.p...

linux系統安裝psycopg2

最近使用python操作postgresql資料庫,需要使用到第三方庫psycopg2 在安裝過程遇到過的坑 花費了近3個小時才搞定 總結一下,一面以後再使用時跳過 其中一 二滿足條件可直接略過,yum install y wgetlinux環境預設python2已安裝,但是pip沒有安裝,所以需要...