sqlite3相应的注意点

注意: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()

posted @ 2018-12-10 17:24  Corey0606  阅读(484)  评论(0编辑  收藏  举报