使用psycopg2操作PostgreSQL数据库之二
生活随笔
收集整理的這篇文章主要介紹了
使用psycopg2操作PostgreSQL数据库之二
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用psycopg2操作PostgreSQL數(shù)據(jù)庫之二
傭工7001
1. 連接數(shù)據(jù)庫:
import psycopg2import psycopg2.extrasconn = psycopg2.connect(host='localhost', port=5432, user='myuser', password='mypass', database='mydb')備注:connect()也可以使用一個大的字符串參數(shù), 比如”host=localhost port=5432 user=postgres password=postgres dbname=test”
2. 打開Cursor:
cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) 備注:這里創(chuàng)建的是一個字典Cursor, 這樣返回的數(shù)據(jù), 都是字典的形式, 方便使用,如果不指定,則默認(rèn)返回元組形式的結(jié)果集,只能以索引訪問字段值。
3. 執(zhí)行SQL查詢:
(1)執(zhí)行sql時傳入?yún)?shù),要使用占位符%s(無論數(shù)據(jù)類型)
- sql腳本必須以分號結(jié)尾, 不能省略.
- 傳遞參數(shù)時,必須以元組的形式提供,一個參數(shù)時后面必須加逗號! (3)這樣是不行的.
(2)三種方式取得查詢結(jié)果:
psycopg2有3個方法用以取得結(jié)果:fetchone(), fetchall()和fetchmany()。
- fetchone()????? 返回一條結(jié)果,如果找不到,返回None。
- fetchall()??????? 返回所有結(jié)果,如果找不到,返回空list.。
- fetchmany()?? 調(diào)用時需要給出1個指定返回結(jié)果數(shù)的參數(shù), 每次調(diào)用,游標(biāo)向后移,返回值如同fetchall()。
4. 執(zhí)行增刪改sql語句
??? 執(zhí)行增刪改的sql語句,執(zhí)行方法同查詢語句一樣,同樣使用cursor.execute(),只是執(zhí)行后不需要獲取返回值,但是需要使用的連接對象的commit()方法提交一下,才會把數(shù)據(jù)提交到數(shù)據(jù)庫當(dāng)中。
- 查看psycopg2生成的sql腳本:Cursor對象的mogrify()方法會返回生成的sql腳本,調(diào)試時可以用來查看生成的sql是否正確。cursor.mogrify(‘SELECT * FROM test WHERE a = %s AND b = %s;’, (‘a(chǎn)’, ‘b’))
- 查看最后一次執(zhí)行的sql腳本:訪問Cursor的query屬性,這是一個只讀的屬性,可以返回上次執(zhí)行的sql腳本。
轉(zhuǎn)載于:https://www.cnblogs.com/dajianshi/archive/2012/04/20/2827098.html
總結(jié)
以上是生活随笔為你收集整理的使用psycopg2操作PostgreSQL数据库之二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Exchange数据保护
- 下一篇: centos+nginx+php+mys