金仓数据库KingbaseES客户端编程接口指南-Python(4. 执行SQL语句)

4. 执行SQL语句

  • 查询和结果集处理

  • 执行非查询SQL语句

  • 参数传递

4.1. 查询和结果集处理

使用 cursor 函数来获取游标对象,然后调用 execute 函数来发送查询语句。

fetchall 函数可以获取全部结果集,也可以使用 fetchone 函数获取单行结果,若为空,将返回空列表。

cur = conn.cursor()
cur.execute("select id from test")
rows = cur.fetchall()
for row in rows:
    print(row)
cur.close()

4.2. 执行非查询SQL语句

获取游标对象后,直接执行 execute 函数即可。

cur = conn.cursor()
cur.execute('create table test(id integer, name TEXT)')
cur.exeute("INSERT INTO TEST(id, name) VALUES(1, 'John')")

cur.close()

4.3. 参数传递

ksycopg2实际上并没有prepare和bind功能,而是使用了参数传递将Python类型转换为SQL类型来防止SQL注入。

占位符使用%标记,使用%s表示按位置占位符,%(name)s表示命名占位符。

cur.exeute("INSERT INTO TEST(id, name) VALUES(%s, %s)", (2, "position placeholder"))

cur.exeute("INSERT INTO TEST(id, name) VALUES(%(id)s, %(val)s)", {'val': 'name placeholder', 'id': 3})

你可能感兴趣的:(KingbaseES产品手册,数据库,sql,mysql,kingbase)