执行SQL语句
查询和结果集处理
使用 cursor 函数来获取游标对象,然后调用 execute 函数来发送查询语句。 fetchall 函数可以获取全部结果集,也可以使用 fetchone 函数获取单行结果,若为空,将返回空列表。
cur = conn.cursor()
cur.execute("select id from udb_test")
rows = cur.fetchall()
for row in rows:
print(row)
cur.close()
执行非查询SQL语句
获取游标对象后,直接执行execute函数即可。
cur = conn.cursor()
cur.execute('create table udb_test(id integer, name TEXT)')
cur.execute("INSERT INTO TEST(id, name) VALUES(1, 'jiuyou')")
cur.close()
参数传递
curosr.execute(query, vars_list), 此方法执行被参数化的SQL语句(即占位符,而不是SQL文字)。psycopg2模块支持用%s标志的占位符。
表11.1-curosr.execute()参数:
| 参数名 | 说明 |
|---|---|
| query | 待执行的 sql 语句 |
| Vars_list | 变量列表,用于匹配 query |
cur.execute("INSERT INTO TEST(id, name) VALUES(%s, %s)", (2, "jiuyoujishu"))
cur.execute("INSERT INTO TEST(id, name) VALUES(%(id)s, %(val)s)", {'val': 'jiuyoushujuku', 'id': 3})