我使用的是 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="")

print("Opened database successfully")

在这里指定使用testdb作为数据库名称,如果数据库已成功打开连接,则会提供以下消息:

Open database successfully

创建表

以下Python程序将用于在先前创建的数据库(testdb)中创建一个表:

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database="testdb", user="postgres", password="pass123", host="127.0.0.1", port="")
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(),
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", user="postgres", password="pass123", host="127.0.0.1", port="")
print("Opened database successfully") cur = conn.cursor() cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (, 'Paul', , 'California', 20000.00 )"); cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (, 'Allen', , 'Texas', 15000.00 )"); cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (, 'Teddy', , 'Norway', 20000.00 )"); cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (, '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", user="postgres", password="pass123", host="127.0.0.1", port="")
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[])
print("NAME = ", row[])
print("ADDRESS = ", row[])
print("SALARY = ", row[], "\n") print("Operation done successfully");
conn.close()

执行上述程序时,会产生以下结果:

Opened database successfully
ID =
NAME = Paul
ADDRESS = California
SALARY = 20000.0 ID =
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0 ID =
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0 ID =
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0 Operation done successfully
 

更新操作

以下 Python 代码显示了如何使用UPDATE语句来更新任何记录,然后从COMPANY表中获取并显示更新的记录:

#!/usr/bin/python

import psycopg2

conn = psycopg2.connect(database="testdb", user="postgres", password="pass123", host="127.0.0.1", port="")
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, name, address, salary from COMPANY")
rows = cur.fetchall()
for row in rows:
print("ID = ", row[])
print("NAME = ", row[])
print("ADDRESS = ", row[])
print("SALARY = ", row[], "\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", user="postgres", password="pass123", host="127.0.0.1", port="")
print("Opened database successfully") cur = conn.cursor() cur.execute("DELETE from COMPANY where ID=2;")
conn.commit
print("Total number of rows deleted :", cur.rowcount) cur.execute("SELECT id, name, address, salary from COMPANY")
rows = cur.fetchall()
for row in rows:
print("ID = ", row[])
print("NAME = ", row[])
print("ADDRESS = ", row[])
print("SALARY = ", row[], "\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 https://www.yiibai.com/postgresql/postgresql_python.html

最新文章

  1. Spring mvc @initBinder 类型转化器的使用
  2. ASP.NET MVC3入门教程之参数(数据)传递
  3. 关于jquery中 跳出each循环的方法
  4. UVA 11754 (暴力+中国剩余定理)
  5. [CareerCup] 5.6 Swap Odd and Even Bits 交换奇偶位
  6. Web开发基础
  7. IPC是什么意思?
  8. b/s客户端和服务器的交互(转)
  9. mock server相关解决方案
  10. 常用的ASCII码对照表
  11. [CSS备忘]多行文本省略号
  12. Find Unique pair in an array with pairs of numbers 在具有数字对的数组中查找唯一对
  13. Codeforces 834D The Bakery【dp+线段树维护+lazy】
  14. 利用whoosh对mongoDB的中文文档建立全文检索
  15. 马凯军201771010116《面向对象与程序设计Java》第十一周学习总结
  16. web前端(11)—— 页面布局1
  17. VKD224B触摸芯片调试笔记
  18. python sqlite3 数据库操作
  19. node mongodb 案例代码
  20. pdo的用处,用法

热门文章

  1. 阻止Bootstrap 模态框(Modal)点击空白处时关闭
  2. DataView RowFilter
  3. java Vamei快速教程13 String类
  4. 论overflow滚动的重要性
  5. 【BZOJ2754】[SCOI2012] 喵星球上的点名(后缀数组+莫队)
  6. 【洛谷3157】[CQOI2011] 动态逆序对(CDQ分治)
  7. 【luogu P1783 海滩防御】 题解
  8. java编程基础——二叉树的镜像
  9. ABC108C - Triangular Relationship(打表)
  10. Linux分享笔记:查看帮助命令 & 常用系统工作命令