简介

Psycopg 是Python语言的PostgreSQL数据库接口。 它的主要优势在于完全支持Python DB API 2.0,以及安全的多线程支持。它适用于随时创建、销毁大量游标的、和产生大量并发INSERT、UPDATE操作的多线程数据库应用。Psycopg包内含 ZPsycopgDA,一个Zope数据库接口。

示例1:新建表、插入、修改

#-*- coding: utf- -*-
import psycopg2 def main(user,pwd,ip,port,dbname):
connection = "dbname=%s user=%s password=%s host=%s port=%s" % (dbname, user,pwd, ip, port) db = psycopg2.connect(connection)
cur = db.cursor()
#创建表
sql_stat = "CREATE TABLE test_class_id(id INT PRIMARY kEY NOT NULL, test_class TEXT, test_id CHAR(10))";
cur.execute(sql_stat)
#插入表
sql_stat = "insert into test_class_id(id, test_class, test_id) values (1, 'a', '3')"
cur.execute(sql_stat) sql_stat = "insert into test_class_id(id, test_class, test_id) values (2, 'a', '3')"
cur.execute(sql_stat)
#更改字段值
sql_stat = "update test_class_id set test_class='b' where id=1"
cur.execute(sql_stat) db.commit() if __name__ == "__main__":
user = '****'
pwd = '****'
ip = '***'
port = ''
dbname = '****'
main(user, pwd, ip, port, dbname)
print "Done~~"

结果

:这里有多次提交execute  最后一次提交commit,如果没有最后的一次commit,你们前面的提交也是不执行的。

示例2:批量表操作

 -*- coding: utf-8 -*-
import psycopg2 class_ids = []
class_ids.append({"test_id": 1, "test_class":"A", "test_id":""})
class_ids.append({"test_id": 2, "test_class":"A", "test_id":""})
class_ids.append({"test_id": 3, "test_class":"B", "test_id":""}) def main(user,pwd,ip,port,dbname):
connection = "dbname=%s user=%s password=%s host=%s port=%s" % (dbname, user,pwd, ip, port)
db = psycopg2.connect(connection)
cur = db.cursor() #sql_del = "delete from cdb_chk_group"
#cur.execute(sql_del)
#批量操作
sql_stat = 'insert into test_class_id(id, test_class, test_id) values (%(test_id)s, %(test_class)s,%(test_id)s)'
cur.executemany(sql_stat, class_ids) db.commit() if __name__ == "__main__":
user = '****'
pwd = '****'
ip = '****'
port = '5432'
dbname = '****'
main(user, pwd, ip, port, dbname)
print "Done~~"

验证

用法补充

1. 查询数据,并输出结果

查询一条

>>> cur.execute("select * from test;")
>>> cur.fetchone()
(, , "abc'def")

查询所有条

>>> cur.execute("select * from test;")
>>> cur.fetchall()
[(1, 100, "abc'def"),(2, 100, "abc'def")]

最新文章

  1. ASP.NET学习链接
  2. 今天携程出事了:让我们来学习下http的响应码
  3. 线性表-双向链表(LinkedList)
  4. js创建和获取cookie
  5. noip2008 火柴棒等式
  6. excel导入数据到sqlserver
  7. MySQL 5.5 服务器变量详解二(转)
  8. rc4加密
  9. IntelIoT技术笔记Java/Eclipse
  10. 理解 Python 中的线程
  11. bzoj4031 [HEOI2015]小Z的房间
  12. crontab的两大坑:百分号和环境变量
  13. Mybatis整理_01
  14. UiAutomator2.0 - Toast信息的验证
  15. MyEclipse自动补全
  16. java注解XML
  17. selenium之测试角色管理页面举例
  18. 07Vue.js快速入门-Vue路由详解
  19. 【转】VMware Fusion Professional 10 序列号
  20. hdu1081 To The Max 2016-09-11 10:06 29人阅读 评论(0) 收藏

热门文章

  1. 配置Log4j(很详细)
  2. nginx不支持pathinfo函数
  3. SSH+Oracle10G抛Disabling contextual LOB creation as createClob() m
  4. [转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)
  5. Intel OIT demo
  6. coreDate 简化版
  7. SSH服务器拒绝了密码 请再试一次
  8. 纯PHP实现定时器任务(Timer)
  9. PHP获取当前日期和时间的方法
  10. WordPress博客教程:博客赚钱