導入與創建連接
import psycopg2
conn = psycopg2.connect(database='dbschool', user='postgres', password='admin', host='127.0.0.1', port='5432')
cur = conn.cursor()
connection
主要方法
connection提供了常用的數據庫操作:
commit():提交任何未提交的事務(transaction)到數據庫。
rollback():回滾。
close():關閉數據庫。如果關閉數據庫時仍有未提交的事務,則執行回滾操作。
cursor
主要方法
- execute(query, vars=None):執行SQL語句。
- fetchall():獲取所有查詢結果,返回值為tuple列表。
插入數據
#單條插入
cur.execute("INSERT INTO Employee VALUES('Gopher', 'China Beijing', 100, '2017-05-27')")
#批量插入
placeholders = ', '.join(['%s'] * df.shape[1])
columns_str = ', '.join(columns)
sql = "insert into {}({})values ({})".format('ceexam', columns_str, placeholders)
cur.executemany(sql,df.values)
注:
批量插入支持格式:字典,python數組,numpy數組
查詢數據
普通
cur.execute("SELECT * FROM Employee")
rows = cur.fetchall()
for row in rows:
print('name=' + str(row[0]) + ' address=' + str(row[1]) +
' age=' + str(row[2]) + ' date=' + str(row[3]))
主要使用pd分析,直接導出為dataframe格式
conn = psycopg2.connect(database='dbschool', user='postgres', password='admin', host='127.0.0.1', port='5432')
sql_getall='select * from ceexam'
df=pd.read_sql(sql=sql_getall,con=conn)