首頁  >  文章  >  後端開發  >  Python連接DB2資料庫

Python連接DB2資料庫

高洛峰
高洛峰原創
2017-02-25 09:54:283879瀏覽

DB2 是美國IBM公司開發的一套關聯式資料庫管理系統,它主要的運作環境為UNIX(包括IBM自家的AIX)、Linux、IBM i(舊稱OS/400)、z/OS,以及Windows伺服器版本。今天我們來探討下如何使用Python連接DB2資料庫

在工作中遇到了這樣的情況,專案中需要連接IBM的關係型資料庫(DB2),關於這方面的函式庫比較稀少,其中ibm_db 是比較好用的一個庫,網路上也有教程,但是好像不準確,也不太詳細,錯誤百出,沒辦法只能拿到後自己分析源碼,總算搞定。

安裝

環境需求:

首先是資料庫DB2,下載連接直接百度,我下載是這兩個檔案:

Python連接DB2資料庫 

只下載箭頭所指即可,我還沒在linux上做測試。

資料庫API(這個東西找了好久,終於找到了合適的)(找不到搜尋:SQLAPI.zip)

Python2.7

VCForPython2.7

ibm_db(主要的庫,在安裝中會下載ntx64_odbc_cli庫,安裝時會檢測IBM_DB_HOME 變量,所以需要安裝資料庫後再安裝ibm_db)

以上模組在網路上都可以找到,請自行下載安裝。

建庫

資料庫安裝好之後新建一個實例,預設是DB2,然後建立一個新的資料庫,我建立的MYTEST(在操作資料庫以及連結資料庫需注意大小寫),命令列方法:

開啟命令列處理器:(管理員身分)

Python連接DB2資料庫

輸入? 直接回車,會顯示指令列表,開啟資料庫管理器:

Python連接DB2資料庫 

然後關閉就好,建立資料庫以及建立表還是使用db2 data studio,比較方便,安裝時在根目錄建立一個臨時目錄,把檔案解壓縮進去,之後再修改install.exe的屬性,改成相容Windows 7運行,同時使用管理員權限打開,之後就是安裝安裝好之後點擊左側新建一個資料庫。

Python連接DB2資料庫 

以以上方式填寫,使用者名稱和密碼使用安裝資料庫時設定的使用者名稱密碼。

實例配置好且能測試成功就可以建立資料庫了。

Python連接DB2資料庫 

資料庫名稱和別名寫上即可,其餘的由於是測試就不填了,等正式環境在考察下性能優化方面的配置。點擊運行創建,過程有點慢,不知道是不是機器配置原因,大概花了十幾分鐘。

下面就不詳細說建表的過程了,值需注意,建表前先簡歷模式(Schema),使用自訂模式建表。

連接

連接直接匯入庫

Python連接DB2資料庫

匯入ibm_db_dbi即可。

import ibm_db_dbi

conn = ibm_db_dbi.connect(“PORT=50000;PROTOCOL=TCPIP;”, host=db[“host”], database=db[“database”], user=db[“user”],

password=db[“passwd”])

conn.set_autocommit(True)

cursor = conn.cursor()

連接資料庫,設定自動提交

#
sql = “select * from testable”

result = cursor.execute(sql)

注意,以上查詢方式是錯的。正確如下:

sql = “select * from MYSCHEMA.TESTTABLE” 


result = cursor.execute(sql) rows = cursor.fetchall()

這裡的動作和MySQL沒什麼差別了

這個地方被坑了好幾個小時,T_T

插入

sql = “insert into MYSCHEMA.TESTTABLE (“uuid”, “content”) values (‘%s', %s)” % (“1234567890”, “asdfghjkl”)

result = cursor.execute(sql)

更新

###########################################################
sql = “update \”MYSCHEMA\”.\”TESTTABLE \” set \”content\” = ‘%s' where \”uuid\” = ‘%s'” % (

“aaa”, “1234567890”)

result = cursor.execute(sql)
#########如果操作成功,result就是True,注意每個語句的引號,單雙必須按以上的方式。 ######以上就是本文給大家分享的使用Python連接DB2資料庫的全部內容了,希望對小夥伴們能夠有所幫助。 ######更多Python連接DB2資料庫相關文章請關注PHP中文網! ###
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn