這篇文章給大家介紹的是如何使用Python操作PostgreSQL ,現在在這里分享一下,有需要的朋友可以參考一下
Python操作PostgreSQL
前提條件:用戶計算機上安裝了PostgreSQL數據庫
安裝psycopg2 –> pip install psycopg2
1 、 psycopg2.connect(database=”testdb”, user=”postgres”, password=”cohondob”, host=”127.0.0.1”, port=”5432”) 這個API打開一個連接到PostgreSQL數據庫。如果成功打開數據庫時,它返回一個連接對象。 www.yiibai.com
2 、 connection.cursor()該程序創建一個光標將用于整個數據庫使用Python編程。 yiibai.com
3 、 cursor.execute(sql [, optional parameters])此例程執行SQL語句。可被參數化的SQL語句(即占位符,而不是SQL文字)。 psycopg2的模塊支持占位符用%s標志 yiibai.com例如:cursor.execute(“insert into people values (%s, %s)”, (who, age))
4 、 curosr.executemany(sql, seq_of_parameters)該程序執行SQL命令對所有參數序列或序列中的sql映射。 www.yiibai.com
5 、 curosr.callproc(procname[, parameters])這個程序執行的存儲數據庫程序給定的名稱。該程序預計為每一個參數,參數的順序必須包含一個條目。
6 、 cursor.rowcount這個只讀屬性,它返回數據庫中的行的總數已修改,插入或刪除最后 execute*().
7 、 connection.commit()此方法提交當前事務。如果不調用這個方法,無論做了什么修改,自從上次調用commit()是不可見的,從其他的數據庫連接。
8 、 connection.rollback()此方法會回滾任何更改數據庫自上次調用commit()方法。
9 、 connection.close()此方法關閉數據庫連接。請注意,這并不自動調用commit()。如果你只是關閉數據庫連接而不調用commit()方法首先,那么所有更改將會丟失! www.yiibai.com
10 、 cursor.fetchone()這種方法提取的查詢結果集的下一行,返回一個序列,或者無當沒有更多的數據是可用的。
11 、 cursor.fetchmany([size=cursor.arraysize])這個例程中取出下一個組的查詢結果的行數,返回一個列表。當沒有找到記錄,返回空列表。該方法試圖獲取盡可能多的行所顯示的大小參數。
12 、 cursor.fetchall()這個例程獲取所有查詢結果(剩余)行,返回一個列表。空行時則返回空列表。 www.yiibai.com
1、連接到數據庫
import psycopg2 #導入相關模塊 #傳入參數 數據庫名 用戶名 用戶密碼 主機地址 端口 conn = psycopg2.connect(database="mybase", user="postgres", password="asd123456", host="127.0.0.1", port="5432") print "Ok"
2、創建表
import psycopg2 conn = psycopg2.connect(database="mybase", user="postgres", password="asd123456", host="127.0.0.1", port="5432") cur = conn.cursor() #建立操作游標 #傳入的參數是 SQL 建表語句 cur.execute('''CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);''') print "ok" conn.commit() #注意,只有commit一下才會生效 conn.close()
3、插入數據
import psycopg2 conn = psycopg2.connect(database="mybase", user="postgres", password="asd123456", host="127.0.0.1", port="5432") cur = conn.cursor() #讓它ID自動生成 cur.execute("INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ( 'Paul', 32, 'California', 20000.00 )"); #注意這里還可以返回插入數據的ID results = cur.fetchone() ID = results[0] #返回插入的記錄的id 便于后續操作 conn.commit() conn.close()
4、刪除數據
import psycopg2 conn = psycopg2.connect(database="mybase", user="postgres", password="asd123456", host="127.0.0.1", port="5432") cur = conn.cursor() cur.execute("DELETE from COMPANY where ID=2;") conn.commit conn.close()
5、更新數據
import psycopg2 conn = psycopg2.connect(database="mybase", user="postgres", password="asd123456", host="127.0.0.1", port="5432") cur = conn.cursor() cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1") conn.commit conn.close()
6、查詢數據
import psycopg2 conn = psycopg2.connect(database="mybase", user="postgres", password="asd123456", host="127.0.0.1", port="5432") cur = conn.cursor() cur.execute("SELECT id, name, address, salary from COMPANY") rows = cur.fetchall() #這里返回查詢的所有數據集 conn.close()
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com