python sqlist3 sql语句中的’?’ 与 ‘%s’

1、创建数据库

import sqlite3

conn = sqlite3.connect('test1.db')
c = conn.cursor()

sql1 = '''
    create table students
        (id int,name text,age int )
'''
c.execute(sql1)

2、提交数据方式1

sql2 = '''
insert into students values(1,'Tom',20)
'''
c.execute(sql2)
# 等价于c.execute("insert into students values(1,'Tom',20)")

3、提交数据方式2 : 用?插入数据

data = [2, 'Jack', 22]
c.execute("insert into students values(?,?,?)", data)

4、提交数据方式3 : 用?+executemany插入多条数据

datas = [(3, 'wang', 33), (4, 'zhang', 19)]
c.executemany("insert into students values(?,?,?)", datas)

conn.commit()
conn.close()

补充:提交数据4:固定字符串格式

from string import Template

sql_temp = Template("insert into students values(${id},'${name}',${age})")
c.execute(sql_temp.substitute(id=10, name="rave", age=30))

注意: name是字符串,所以用单引号括起来

参考文档: sqlite3 — DB-API 2.0 interface for SQLite databases

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐