windows環境下python連線openGauss資料庫
文章目錄
- 一、python 介紹
- 二、Python下載及安裝
- 三、openGauss Connectors (Psycopg2) 介紹
- 四、openGauss Connectors (Psycopg2)下載並初始化
- 五、連線並訪問openGauss資料庫
- 六、問題總結(FAQ)
一、python 介紹
python最新版
windows python是款面向物件、直譯式計算機程式設計語言,同時也是一種功能強大而完善的通用型語言,具有非常簡潔而清晰的語法特點,適合完成各種高層任務,幾乎可以在所有的作業系統中執行。
Python特殊功能
- 很清楚、明確、易讀的語法
- 較強的自省能力
- 直觀的面向物件
- 自然的表達程式程式碼
- 完整的模組化設計,支援分層包
- 基於異常的錯誤處理
- 非常高的水平動態資料型別
- 幾乎每一個任務的廣泛的標準庫和第三方模組
- 擴充套件和模組很容易寫在C,C + +(或Java的Jython或NET語言IronPython的)
- 嵌入在應用程式中作為指令碼介面
Python 軟體亮點
- 完全模組化,Python核心程式設計軟體支援分層包
- 基於異常的錯誤處理
- 非常高級別的動態資料型別
- 廣泛的標準庫和第三方模組,Python核心程式設計軟體幾乎被用於每個任務
- 擴充套件和模組易於使用C,C ++(或Jython Java,或IronPython的.NET語言)
- 可嵌入應用程式作為指令碼介面
Python說明
Python是一個解釋性語言,因為不需要編譯和連線所以能節省大量的程式開發時間。解釋程式可以互動使用,這樣可以可以很容易地試驗語言的各種特色,寫只用一次的程式,或在從底向上程式開發中測試函式。它也是一個方便的計算器。
Python是一種面向物件、直譯式計算機程式設計語言,也是一種功能強大而完善的通用型語言,已經具有十多年的發展歷史,成熟且穩定。這種語言具有非常簡捷而清晰的語法特點,適合完成各種高層任務,幾乎可以在所有的作業系統中執行。目前,基於這種語言的相關技術正在飛速的發展,使用者數量急劇擴大,相關的資源非常多。
Python可用於的作業系統:Windows和Linux / Unix系統,OS / 2,Mac上,Amiga上,其中包括。甚至有NET和Java虛擬機器上執行,Python的實現是一個開源許可證,使得它可以自由使用和分派下,甚至用於商業用途。
二、Python下載及安裝
1、下載: 進入python官網下載(http://www.python.org/)。滑鼠指向Downloads(不用點選)會彈出下拉框,直接點選windows下的Python 3.11.0即可下載。(國外網站下載較慢,建議找個國內的資源下載)
2、下載好之後,右鍵以管理員身份執行exe可執行檔案。
這裡勾選Add Python 3.11 to PATH (把Python的安裝路徑新增到系統環境 變數的Path變數中,如果不選那就需要自己配置環境變量了,參見FAQ) ,Install Now 預設安裝,Customize installation 自定義安裝。
這裡選自定義安裝,安裝Python文件、Python的pip等…預設即可,直接next
路徑可以更改一下:
自動安裝中……
最後點這裡(紅圈處)。
安裝完成。
開啟(cmd)終端視窗,輸入python命令,進行驗證,看到相關版本資訊,即表示安裝成功。
開啟(cmd)終端視窗,輸入pip 命令,驗證環境變數是否配置成功。
下載並安裝模組:開啟cmd視窗,鍵入命令 pip install requests 進行安裝,使用pip list命令檢視是否已經安裝模組。
三、openGauss Connectors (Psycopg2) 介紹
Psycopg是一種用於執行SQL語句的PythonAPI,可以為PostgreSQL、openGauss資料庫提供統一訪問介面,應用程式可基於它進行資料操作。Psycopg2是對libpq的封裝,主要使用C語言實現,既高效又安全。它具有客戶端遊標和伺服器端遊標、非同步通訊和通知、支援“COPY TO/COPY FROM”功能。支援多種型別Python開箱即用,適配PostgreSQL資料型別;通過靈活的物件適配系統,可以擴充套件和定製適配。Psycopg2相容Unicode和Python 3。
openGauss資料庫提供了對Psycopg2特性的支援,並且支援Psycopg2通過SSL模式連結。
四、openGauss Connectors (Psycopg2)下載並初始化
登入openGauss社群(http://opengauss.org/zh/download/)下載對應的openGauss資料庫聯結器(本測試環境下載的是Python-psycopg2_2.1.0,版本與資料版本匹配)。
從釋出包中獲取,包名為openGauss-xxxx-作業系統版本號-64bit-Python.tar.gz。解壓後有兩個資料夾:psycopg2庫檔案和lib庫檔案。
將psycopg2拷貝到python安裝目錄的第三方包資料夾(即site-packages目錄)下。
將lib資料夾中的檔案拷貝到安裝目錄Lib目錄下。
對於非資料庫使用者,需要將解壓後的lib目錄,配置在LD_LIBRARY_PATH環境變數中(參考FAQ)。
下載並安裝模組:開啟cmd視窗,鍵入命令pip install psycopg2
五、連線並訪問openGauss資料庫
前置條件:openGauss資料庫已成功安裝、併成功啟動。
編輯好python檔案,並儲存。(本測試指令碼功能主要實現連結openGauss資料庫、建立表、插入資料、查詢資料等)
附原指令碼:
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database="postgres", user="omm2", password="P@ssw0rd123", host="192.168.52.3", port="26000")
cur = conn.cursor()
#建立表COMPANY1
cur.execute('''CREATE TABLE COMPANY1 (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);''')
#插入資料
cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )");
cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
cur.execute("INSERT INTO COMPANY1 (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");
#查詢結果
cur.execute("SELECT id, name, address, salary from COMPANY1")
rows = cur.fetchall()
for row in rows:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3])
conn.commit()
conn.close()
執行python指令碼:開啟(cmd)終端視窗, 執行命令“python new2.py”,如下截圖。
如上出現以上結果, 則表示python連結openGauss資料庫成功,執行建立表、插入資料、查詢資料成功。
六、問題總結(FAQ)
1、python 環境變數配置參考:
2、開啟(cmd)終端視窗,輸入pip,遇到:‘pip’不是內部或外部命令,也不是可執行的程式或批處理檔案。即下圖這種情況:
解決辦法:新增環境變數。複製python安裝目錄 Scripts的路勁, 調價到 Path下(參考上文python安裝時配置環境變數的圖示)。
3、在執行python指令碼時,如果報錯:ModuleNotFoundError:No module named ‘psycopg2._psycopg’。 則需要執行pip install psycopg2 命令, 下載安裝模組。
4、在連結openGauss資料庫時,提示:Forbid remote connection with initial user ,意思是禁止用初始使用者進行遠端連線,即不要使用資料庫預設的omm使用者訪問。
5、Psycopg(介面)參考
Psycopg介面是一套提供給使用者的API方法。
1)psycopg2.connect() :此方法建立新的資料庫會話並返回新的connection物件。
原型:
conn=psycopg2.connect(dbname=“test”,user=“postgres”,password=“secret”,host=“127.0.0.1”,port=“5432”)
返回值:connection物件(連線openGauss資料庫例項的物件)。
引數 :
關鍵字 引數說明
dbname 資料庫名稱。
user 使用者名稱。
password 密碼。
host 資料庫IP地址,預設為UNIX socket型別。
port 連線埠號,預設為5432。
sslmode ssl模式,ssl連線時用。
sslcert 客戶端證書路徑,ssl連線時用。
sslkey 客戶端金鑰路徑,ssl連線時用。
sslrootcert 根證書路徑,ssl連線時用。
2)connection.cursor():此方法用於返回新的cursor物件。
原型:
cursor(name=None, cursor_factory=None, scrollable=None, withhold=False)
返回值 :cursor物件(用於整個資料庫使用Python程式設計的cursor)。
引數 :
關鍵字 引數說明
name cursor名稱,預設為None。
cursor_factory 用於創造非標準cursor,預設為None。
scrollable 設定SCROLL選項,預設為None。
withhold 設定HOLD選項,預設為False。
3)cursor.execute(query,vars_list) :此方法執行被引數化的SQL語句(即佔位符,而不是SQL文字)。psycopg2模組支援用%s標誌的佔位符。
原型
curosr.execute(query,vars_list)
引數:
關鍵字 引數說明
query 待執行的sql語句。
vars_list 變數列表,匹配query中%s佔位符。
4)cursor.fetchall():此方法獲取查詢結果的所有(剩餘)行,並將它們作為元組列表返回。
原型:
cursor.fetchall()
5)connection.commit():此方法將當前掛起的事務提交到資料庫。注意: 預設情況下,Psycopg在執行第一個命令之前開啟一個事務:如果不呼叫commit(),任何資料操作的效果都將丟失。
原型:
connection.commit()
6)connection.close():此方法關閉資料庫連線。注意: 此方法關閉資料庫連線,並不自動呼叫commit()。如果只是關閉資料庫連線而不呼叫commit()方法,那麼所有更改將會丟失。
原型:
connection.close()
- GaussDB資料型別轉換介紹
- 通過公網連線GaussDB資料庫例項
- GaussDB資料型別介紹
- 如何通過DAS連線GaussDB
- 企業級分散式資料庫 - GaussDB介紹
- GaussDB 資料庫實驗環境搭建指導
- Tableau連線openGauss實踐
- 以學校資料模型為例,掌握在DAS下使用GaussDB
- openGauss資料庫共享儲存特性簡介
- openGauss資料庫原始碼解析系列文章——備份恢復機制:openGauss增量備份技術(上)
- openGauss資料庫客戶端接入認證詳解
- Excel連線openGauss資料庫實操
- openGauss資料庫原始碼解析系列文章——備份恢復機制:openGauss全量備份技術
- 超市進銷存之openGauss資料庫的應用與實踐
- 在WPS表格裡製作連線到openGauss的實時重新整理報表
- openGauss資料庫PostGIS 安裝與使用
- openGauss中Schema賦權小試
- openGauss Cluster Manager RTO Test
- 【我和openGauss的故事】openGauss獲獎專案講解
- openGauss易知易會的幾個實用特性