psycopg2简单插入和查询(直接查找为dataframe)

导入与创建连接

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)
posted @ 2019-07-27 14:50  永遇乐yjt  阅读(4837)  评论(0编辑  收藏  举报