1. 程式人生 > 資料庫 >Python 操作 PostgreSQL 資料庫示例【連線、增刪改查等】

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.0

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0

Operation 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.0

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0

Operation 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.0

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0

Operation done successfully

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python常見資料庫操作技巧彙總》、《Python數學運算技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。