注意:sqlite3在execute("sql语句") sqlite3只支持?,:=占位符 不支持%s 但是sql语句作为变量execute(sql)里只可以用%s作占位符,等号的另一遍要加a = 'b'
模糊查询
sql语句like用法
sql = "select %s,%s,%s,%s,%s,%s,%s from product where HisunPN like '%%%s%%' " % (self.sale_power[0], self.sale_power[1],
self.sale_power[2], self.sale_power[3],
self.sale_power[4], self.sale_power[5],
self.sale_power[6], value)
result = self.first.cursor.execute(sql).fetchall()
显示结果为'%字段%', 上述查询结果为关键词里包含字段的
sql语句修改操作
update用法
用占位符?
self.cursor.execute("UpDATE userinfo set password = ? where usename = ?", (pwd, username))
注意如果用%s
sql = "UpDATE product set %s='%s' where HisunPN='%s' " % (name, value, HisunPN)
print(sql)
self.cursor.execute(sql)
插入数据的时候,如果字段对应,可以省略(col,col1....)
self.cursor.execute("insert into userinfo values (?, ?, ?)", (username, pwd, power))
注意:在实际项目中,执行数据库操作脚本都需要加上commit才能刷新,但是同样也需要加上try捕捉数据库的异常,如果出现异常需要进行rollback回滚操作
self.conn.rollback()