使用psycopg2操作PostgreSQL数据库之二

佣工7001

1. 连接数据库:

import psycopg2import psycopg2.extrasconn = psycopg2.connect(host='localhost', port=5432, user='myuser', password='mypass', database='mydb')

备注:connect()也可以使用一个大的字符串参数, 比如”host=localhost port=5432 user=postgres password=postgres dbname=test”

2. 打开Cursor:

cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) 

备注:这里创建的是一个字典Cursor, 这样返回的数据, 都是字典的形式, 方便使用,如果不指定,则默认返回元组形式的结果集,只能以索引访问字段值。

3. 执行SQL查询:

(1)执行sql时传入参数,要使用占位符%s(无论数据类型)

cursor.execute('SELECT * FROM operators WHERE id = %s;', (3,))

特别说明:

  • sql脚本必须以分号结尾, 不能省略.
  • 传递参数时,必须以元组的形式提供,一个参数时后面必须加逗号! (3)这样是不行的.

(2)三种方式取得查询结果:

psycopg2有3个方法用以取得结果:fetchone(), fetchall()和fetchmany()。

  • fetchone()      返回一条结果,如果找不到,返回None。
  • fetchall()        返回所有结果,如果找不到,返回空list.。
  • fetchmany()   调用时需要给出1个指定返回结果数的参数, 每次调用,游标向后移,返回值如同fetchall()。

4. 执行增删改sql语句

执行增删改的sql语句,执行方法同查询语句一样,同样使用cursor.execute(),只是执行后不需要获取返回值,但是需要使用的连接对象的commit()方法提交一下,才会把数据提交到数据库当中。

5.编程调试技巧:

  • 查看psycopg2生成的sql脚本:Cursor对象的mogrify()方法会返回生成的sql脚本,调试时可以用来查看生成的sql是否正确。cursor.mogrify(‘SELECT * FROM test WHERE a = %s AND b = %s;’, (‘a’, ‘b’))
  • 查看最后一次执行的sql脚本:访问Cursor的query属性,这是一个只读的属性,可以返回上次执行的sql脚本。

转载于:https://www.cnblogs.com/dajianshi/archive/2012/04/20/2827098.html

使用psycopg2操作PostgreSQL数据库之二相关推荐

  1. psycopg2 mysql_使用psycopg2操作PostgreSQL数据库之二

    使用psycopg2操作PostgreSQL数据库之二 佣工7001 1. 连接数据库: import psycopg2 import psycopg2.extras conn = psycopg2. ...

  2. php如何连接postgresql,php如何连接和操作PostgreSQL数据库

    这篇文章主要介绍了php连接与操作PostgreSQL数据库的方法,以实例形式较为详细的分析了php连接PostgreSQL数据库以及进行读取与增加.修改.删除等技巧,具有一定的参考借鉴价值,需要的朋 ...

  3. golang操作postgresql数据库jsonb类型

    golang操作postgresql数据库jsonb类型 本文以案例为主,少言,自悟. 推荐一个测试sql的网站 SQL操作 // 创建一个带有jsonb列的表 CREATE TABLE items ...

  4. 使用PostgREST的RestAPI操作PostgreSQL数据库教程

    使用PostgREST的RestAPI操作PostgreSQL数据库教程 表和视图 公开的架构中的所有视图和表均可被查询的活动数据库角色访问,并且可供活动数据库角色访问.它们暴露在一级深度路线中.例如 ...

  5. php+pg+query+更新,PHP连接及操作PostgreSQL数据库的方法详解

    本文实例讲述了PHP连接及操作PostgreSQL数据库的方法.分享给大家供大家参考,具体如下: PostgreSQL扩展在默认情况下在最新版本的PHP 5.3.x中是启用的. 可以在编译时使用--w ...

  6. C++操作PostgreSQL数据库

    近期工作需要使用C++操作PostgreSQL数据库. 第一反应是查看PostgreSQL官网了解PostgreSQL的C++客户端连接库,经查阅官方的资料,有三种方式: PostgreSQL的驱动程 ...

  7. psql+加载mysql数据库_Go实战--go语言操作PostgreSQL数据库(github.com/lib/pq)

    生命不止,继续 Go go go !!! 之前关于golang操作数据库的博客: 今天跟大家分享golang中使用PostgreSQL数据库. 何为PostgreSQL PostgreSQL is a ...

  8. java gdal postgresql_使用GDAL/OGR操作Postgresql数据库

     GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用抽象数据模型来表达所支持的各种文件格式.它还有一系列命 ...

  9. 使用GDAL/OGR操作Postgresql数据库

     GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用抽象数据模型来表达所支持的各种文件格式.它还有一系列命 ...

最新文章

  1. 【OpenCV 4开发详解】点集拟合
  2. Qt解析XML及QTableWidget用法示例
  3. optfine的jar文件打不开_JAVA版1.14.4 装了最新版的optifine游戏打不开了 求助大佬们...
  4. 2021努力拼搏,致敬为梦想而拼搏的人
  5. php 开启命令模式,如何启用PhpStorm中的命令行工具
  6. 机器学习面试——逻辑回归和线性回归
  7. 什么时候对象会进入老年代?
  8. IDEA导入jar包之后引用不了
  9. 微信公众号开发:素材管理(临时、永久)
  10. 聊聊我办上海居住证的经历
  11. SMMS:一个不错的免费图床
  12. 2021年中国棘轮手柄市场趋势报告、技术动态创新及2027年市场预测
  13. Kubernetes 存活探针和就绪探针的最佳实践
  14. [Web前端] 子元素设置高度为100%, 却没有与父元素对齐高度.
  15. html 怎么把图片变成圆角,css怎么样实现图片圆角
  16. Pytorch中dim的理解
  17. 三十一、神仙版《球为媒》
  18. 数据结构-无序(自由)树的简单实现(C++)
  19. 移动端seo优化,来自对百度移动搜索建站优化白皮书的整理
  20. Android Studio Socket客户端 与电脑服务器收发消息

热门文章

  1. 计算机视觉与深度学习 | 基于DNN神经网络实现人的年龄及性别预测(代码类)
  2. 5M1E,软件质量管理最佳解决方案
  3. 八年级下册册计算机计划,粤教版(B版)信息技术八年级下册教学工作计划
  4. 万年历单片机c语言,单片机+lcd12864液晶万年历C程序
  5. c 和php 加密,加载由blenc加密的页面时出错(C和PHP代码)
  6. static--修饰(局部变量、全局变量、函数)
  7. erlang精要(17)-匿名函数多子句-多个激活函数实现
  8. python源码精要(8)-CPython源代码结构
  9. 程序员在未来会变成廉价劳动力(农民工)吗?
  10. 【Python】装上后这 14 个插件后,PyCharm 真的是无敌的存在