日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法

發(fā)布時(shí)間:2023/12/3 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

其實(shí)在Python中可以用來(lái)連接PostgreSQL的模塊很多,這里比較推薦psycopg2。psycopg2安裝起來(lái)非常的簡(jiǎn)單(pip install psycopg2),這里主要重點(diǎn)介紹下如何使用。

安裝psycopg2模塊:

怎么驗(yàn)證是否已經(jīng)安裝過(guò)psycopy2?

編寫(xiě)上面代碼,運(yùn)行看是否拋出缺少psycopg2模塊。

安裝方法1:

1)使用psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe安裝,下載地址:http://vdisk.weibo.com/s/Cd8pPaw56Ozys

直接運(yùn)行exe,不出錯(cuò)誤,運(yùn)行上邊代碼驗(yàn)證代碼無(wú)錯(cuò)誤,基本算是安裝完成了。

2)怎么卸載?

2.1)找到安裝目錄:C:\Python27,發(fā)現(xiàn)下邊包含文件:Removepsycopg2.exe,運(yùn)行,來(lái)刪除;

2.2)如果運(yùn)行失敗的話,進(jìn)入目錄:C:\Python27\Lib\site-packages下,找到psycopg2文件夾和psycopg2-2.4.2-py2.7.egg-info文件,右鍵刪除。

2.3)運(yùn)行上邊的代碼,確認(rèn)是否刪除成功。

安裝方法2:

下載文件:psycopg2-2.6.2-cp27-none-win_amd64.whl

我這里把psycopg2-2.6.2-cp27-none-win_amd64.whl拷貝到安裝目錄下Scripts文件夾中。

cmd中運(yùn)行代碼:pip install C:\Python27\Scripts\psycopg2-2.6.2-cp27-none-win_amd64.whl

運(yùn)行上邊的代碼,確認(rèn)是否刪除成功。

通過(guò)psycopg2操作數(shù)據(jù)庫(kù):

使用賬戶(hù)postgres,創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)testdb。

參考yiibai.comAPI:

S.N. API & 描述

1 psycopg2.connect(database="testdb",user="postgres",password="cohondob",host="127.0.0.1",port="5432")

這個(gè)API打開(kāi)一個(gè)連接到PostgreSQL數(shù)據(jù)庫(kù)。如果成功打開(kāi)數(shù)據(jù)庫(kù)時(shí),它返回一個(gè)連接對(duì)象。

2 connection.cursor()

該程序創(chuàng)建一個(gè)光標(biāo)將用于整個(gè)數(shù)據(jù)庫(kù)使用Python編程。

3 cursor.execute(sql [,optional parameters])

此例程執(zhí)行SQL語(yǔ)句。可被參數(shù)化的SQL語(yǔ)句(即占位符,而不是SQL文字)。 psycopg2的模塊支持占位符用%s標(biāo)志

例如:cursor.execute("insert into people values (%s,%s)",(who,age))

4 curosr.executemany(sql,seq_of_parameters)

該程序執(zhí)行SQL命令對(duì)所有參數(shù)序列或序列中的sql映射。

5 curosr.callproc(procname[,parameters])

這個(gè)程序執(zhí)行的存儲(chǔ)數(shù)據(jù)庫(kù)程序給定的名稱(chēng)。該程序預(yù)計(jì)為每一個(gè)參數(shù),參數(shù)的順序必須包含一個(gè)條目。

6 cursor.rowcount

這個(gè)只讀屬性,它返回?cái)?shù)據(jù)庫(kù)中的行的總數(shù)已修改,插入或刪除最后 execute*().

7 connection.commit()

此方法提交當(dāng)前事務(wù)。如果不調(diào)用這個(gè)方法,無(wú)論做了什么修改,自從上次調(diào)用commit()是不可見(jiàn)的,從其他的數(shù)據(jù)庫(kù)連接。

8 connection.rollback()

此方法會(huì)回滾任何更改數(shù)據(jù)庫(kù)自上次調(diào)用commit()方法。

9 connection.close()

此方法關(guān)閉數(shù)據(jù)庫(kù)連接。請(qǐng)注意,這并不自動(dòng)調(diào)用commit()。如果你只是關(guān)閉數(shù)據(jù)庫(kù)連接而不調(diào)用commit()方法首先,那么所有更改將會(huì)丟失!

10 cursor.fetchone()

這種方法提取的查詢(xún)結(jié)果集的下一行,返回一個(gè)序列,或者無(wú)當(dāng)沒(méi)有更多的數(shù)據(jù)是可用的。

11 cursor.fetchmany([size=cursor.arraysize])

這個(gè)例程中取出下一個(gè)組的查詢(xún)結(jié)果的行數(shù),返回一個(gè)列表。當(dāng)沒(méi)有找到記錄,返回空列表。該方法試圖獲取盡可能多的行所顯示的大小參數(shù)。

12 cursor.fetchall()

這個(gè)例程獲取所有查詢(xún)結(jié)果(剩余)行,返回一個(gè)列表。空行時(shí)則返回空列表。

打開(kāi)數(shù)據(jù)庫(kù)連接:

import os

import sys

import psycopg2

def connectPostgreSQL():

conn = psycopg2.connect(database="testdb",password="new.1234",port="5432")

print 'connect successful!'

if __name__=='__main__':

connectPostgreSQL()

創(chuàng)建表操作:

import os

import sys

import psycopg2

def connectPostgreSQL():

conn = psycopg2.connect(database="testdb",port="5432")

print 'connect successful!'

cursor=conn.cursor()

cursor.execute('''create table public.member(

id integer not null primary key,name varchar(32) not null,password varchar(32) not null,singal varchar(128)

)''')

conn.commit()

conn.close()

print 'table public.member is created!'

if __name__=='__main__':

connectPostgreSQL()

Insert 操作:

import os

import sys

import psycopg2

def connectPostgreSQL():

conn = psycopg2.connect(database="testdb",port="5432")

print 'connect successful!'

cursor=conn.cursor()

cursor.execute('''create table public.member(

id integer not null primary key,singal varchar(128)

)''')

conn.commit()

conn.close()

print 'table public.member is created!'

def insertOperate():

conn = psycopg2.connect(database="testdb",port="5432")

cursor=conn.cursor()

cursor.execute("insert into public.member(id,name,password,singal)\

values(1,'member0','password0','signal0')")

cursor.execute("insert into public.member(id,singal)\

values(2,'member1','password1','signal1')")

cursor.execute("insert into public.member(id,singal)\

values(3,'member2','password2','signal2')")

cursor.execute("insert into public.member(id,singal)\

values(4,'member3','password3','signal3')")

conn.commit()

conn.close()

print 'insert records into public.memmber successfully'

if __name__=='__main__':

#connectPostgreSQL()

insertOperate()

Select 操作:

import os

import sys

import psycopg2

def connectPostgreSQL():

conn = psycopg2.connect(database="testdb",singal varchar(128)

)''')

conn.commit()

conn.close()

print 'table public.member is created!'

def insertOperate():

conn = psycopg2.connect(database="testdb",'signal3')")

conn.commit()

conn.close()

print 'insert records into public.memmber successfully'

def selectOperate():

conn = psycopg2.connect(database="testdb",port="5432")

cursor=conn.cursor()

cursor.execute("select id,singal from public.member where id>2")

rows=cursor.fetchall()

for row in rows:

print 'id=',row[0],',name=',row[1],pwd=',row[2],singal=',row[3],'\n'

conn.close()

if __name__=='__main__':

#connectPostgreSQL()

#insertOperate()

selectOperate()

結(jié)果:

Python 2.7.12 (v2.7.12:d33e0cf91556,Jun 27 2016,15:24:40) [MSC v.1500 64 bit (AMD64)] on win32

Type "copyright","credits" or "license()" for more information.

>>>

========== RESTART: C:\Users\Administrator\Desktop\mutilpleTest.py ==========

id= 3,name= member2,pwd= password2,singal= signal2

id= 4,name= member3,pwd= password3,singal= signal3

>>>

update操作:

import os

import sys

import psycopg2

def connectPostgreSQL():

conn = psycopg2.connect(database="testdb",'\n'

conn.close()

def updateOperate():

conn = psycopg2.connect(database="testdb",port="5432")

cursor=conn.cursor()

cursor.execute("update public.member set name='update ...' where id=2")

conn.commit()

print "Total number of rows updated :",cursor.rowcount

cursor.execute("select id,singal from public.member")

rows=cursor.fetchall()

for row in rows:

print 'id=','\n'

conn.close()

if __name__=='__main__':

#connectPostgreSQL()

#insertOperate()

#selectOperate()

updateOperate()

結(jié)果:

Python 2.7.12 (v2.7.12:d33e0cf91556,"credits" or "license()" for more information.

>>>

========== RESTART: C:\Users\Administrator\Desktop\mutilpleTest.py ==========

Total number of rows updated : 1

id= 1,name= member0,pwd= password0,singal= signal0

id= 3,singal= signal3

id= 2,name= update ...,pwd= password1,singal= signal1

>>>

Delete操作:

import os

import sys

import psycopg2

def connectPostgreSQL():

conn = psycopg2.connect(database="testdb",'\n'

conn.close()

def deleteOperate():

conn = psycopg2.connect(database="testdb",port="5432")

cursor=conn.cursor()

cursor.execute("select id,'\n'

print 'begin delete'

cursor.execute("delete from public.member where id=2")

conn.commit()

print 'end delete'

print "Total number of rows deleted :",cursor.rowcount

cursor.execute("select id,'\n'

conn.close()

if __name__=='__main__':

#connectPostgreSQL()

#insertOperate()

#selectOperate()

#updateOperate()

deleteOperate()

結(jié)果:

Python 2.7.12 (v2.7.12:d33e0cf91556,"credits" or "license()" for more information.

>>>

========== RESTART: C:\Users\Administrator\Desktop\mutilpleTest.py ==========

id= 1,singal= signal1

begin delete

end delete

Total number of rows deleted : 1

id= 1,singal= signal3

>>>

總結(jié)

以上是生活随笔為你收集整理的python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。