Python 操作 PostgreSQL 資料庫示例【連線、增刪改查等】
本文例項講述了Python 操作 PostgreSQL 資料庫。分享給大家供大家參考,具體如下:
我使用的是 Python 3.7.0
PostgreSQL可以使用psycopg2模組與Python整合。
sycopg2是用於Python程式語言的PostgreSQL資料庫介面卡。
psycopg2是非常小,快速,穩定的。 您不需要單獨安裝此模組,因為預設情況下它會隨著Python 2.5.x版本一起釋出。
pip3 install python-psycopg2 pip3 install psycopg2-binary
連線到資料庫
以下Python程式碼顯示瞭如何連線到現有的資料庫。 如果資料庫不存在,那麼它將自動建立,最後將返回一個數據庫物件。
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb",user="postgres",password="pass123",host="127.0.0.1",port="5432") print("Opened database successfully")
在這裡指定使用testdb作為資料庫名稱,如果資料庫已成功開啟連線,則會提供以下訊息:
Open database successfully
建立表
以下Python程式將用於在先前建立的資料庫(testdb)中建立一個表:
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb",port="5432") print("Opened database successfully") cur = conn.cursor() cur.execute('''CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);''') print "Table created successfully" conn.commit() conn.close()
當執行上述程式時,它將在資料庫testdb中建立COMPANY表,並顯示以下訊息:
Opened database successfully
Table created successfully
插入操作
以下Python程式顯示瞭如何在上述示例中建立的COMPANY表中建立記錄:
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb",port="5432") print("Opened database successfully") cur = conn.cursor() cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (1,'Paul',32,'California',20000.00 )"); cur.execute("INSERT INTO COMPANY (ID,SALARY) \ VALUES (2,'Allen',25,'Texas',15000.00 )"); cur.execute("INSERT INTO COMPANY (ID,SALARY) \ VALUES (3,'Teddy',23,'Norway',SALARY) \ VALUES (4,'Mark','Rich-Mond ',65000.00 )"); conn.commit() print("Records created successfully"); conn.close()
當執行上述程式時,它將在COMPANY表中建立/插入給定的記錄,並顯示以下兩行:
Opened database successfully
Records created successfully
SELECT操作
以下 Python 程式顯示瞭如何從上述示例中建立的 COMPANY 表中獲取和顯示記錄:
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb",port="5432") print("Opened database successfully") cur = conn.cursor() cur.execute("SELECT id,name,address,salary from COMPANY") rows = cur.fetchall() for row in rows: print("ID = ",row[0]) print("NAME = ",row[1]) print("ADDRESS = ",row[2]) print("SALARY = ",row[3],"\n") print("Operation done successfully"); conn.close()
執行上述程式時,會產生以下結果:
Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0Operation done successfully
更新操作
以下 Python 程式碼顯示瞭如何使用UPDATE語句來更新任何記錄,然後從COMPANY表中獲取並顯示更新的記錄:
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb",port="5432") print("Opened database successfully") cur = conn.cursor() cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1") conn.commit print("Total number of rows updated :",cur.rowcount) cur.execute("SELECT id,"\n") print("Operation done successfully"); conn.close()
Python
執行上述程式時,會產生以下結果:
Opened database successfully
Total number of rows updated : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000.0ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0Operation done successfully
刪除操作
以下 Python 程式碼顯示瞭如何使用 DELETE 語句來刪除記錄,然後從 COMPANY 表中獲取並顯示剩餘的記錄:
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb",port="5432") print("Opened database successfully") cur = conn.cursor() cur.execute("DELETE from COMPANY where ID=2;") conn.commit print("Total number of rows deleted :","\n") print("Operation done successfully"); conn.close()
執行上述程式時,會產生以下結果:
Opened database successfully
Total number of rows deleted : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0Operation done successfully
更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python常見資料庫操作技巧彙總》、《Python數學運算技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》
希望本文所述對大家Python程式設計有所幫助。