zoukankan      html  css  js  c++  java
  • 使用psycopg2操作PostgreSQL数据库之二

    使用psycopg2操作PostgreSQL数据库之二

    佣工7001

    1. 连接数据库:

    import psycopg2
    
    import psycopg2.extras
    
    conn = 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脚本。

  • 相关阅读:
    前端入门flutter-05Image组件
    前端入门flutter-03Flutter目录结构介绍、入口、自定义Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件
    前端入门flutter-02Dart语言学习
    前端入门flutter-01配置环境
    恋上数据结构使用什么编程语言讲解
    centOS7+:docker版本过低升级到高版本
    JAVA中List数组判断是否有重复元数
    连接数据库时username冲突
    Quartz的学习
    MySQL 服务无法启动解决途径
  • 原文地址:https://www.cnblogs.com/dajianshi/p/2827098.html
Copyright © 2011-2022 走看看