Python之Sqlite3数据库基本操作
在一些小的应用中,难免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,本文主要以一个简单的小例子,简述Python在Sqlite数据库方面的应用,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点
- sqlite3是Python集成的内置类库,提供Python操作sqlite3的相关接口。
- sqlite3.connect(dbfile) 创建数据库连接,返回一个连接对象
- conn.cursor() 创建游标对象,通过返回的cursor对象,执行相应的SQL语句。
- cur.execute(sql, *args) 执行语句
- conn.commit() 提交执行的结果到数据库
- conn.rollback() 回退执行的结果
- cur.close() 关闭cursor对象
- conn.close() 关闭连接对象
基础操作代码
关于Python操作sqlite3的相关核心代码,如下所示:
创建数据表
def createDb(): """创建db数据表""" sql = ‘‘‘ create table person ( id integer primary key autoincrement not null, name varchar not null, age integer ) ‘‘‘ executeSql(sql)
插入语句
def insertData(name, age): """插入数据""" sql = ‘insert into person (name,age)values(?,?)‘ executeSql(sql, (name, age))
update语句
def updateData(id, name, age): """通过ID进行修改语句""" sql = ‘update person set name=?,age =? where id=?‘ executeSql(sql, (name, age, id))
delete语句
def deleteData(id): """通过ID删除数据""" sql = ‘delete from person where id=?‘ executeSql(sql, (id,))
上面的语句都调用统一的executeSql方法,如下所示:
def executeSql(sql, *args): """执行更新语句""" conn = sqlite3.connect(dbfile) cur = conn.cursor() try: cur.execute(sql, *args) conn.commit() print(‘执行成功,影响行数:‘, cur.rowcount) except Exception as e: conn.rollback() print(e) print(‘执行失败‘) finally: cur.close() conn.close()
查询语句(无条件查询)
def queryData(): """查询语句""" sql = ‘select id,name,age from person ‘ executeQuerySql(sql)
查询语句(条件查询)
def queryDataById(id): """通过id进行查询""" sql = ‘select id,name,age from person where id = ? ‘ executeQuerySql(sql, (id,))
上面的查询语句,都调用统一的executeQuerySql方法,如下所示:
def executeQuerySql(sql, *args): """执行查询语句,可带参数""" conn = sqlite3.connect(dbfile) cur = conn.cursor() try: cur.execute(sql, *args) persons = cur.fetchall() for p in persons: print(‘当前行信息如下:‘) print(p) # 返回的是一个元组tuple print(‘查询成功‘) except Exception as e: print(e) print(‘查询失败‘) finally: cur.close() conn.close()
关于本例子的执行源码,可通过链接进行下载,如下所示:
备注
业精于勤,荒于嬉;行成于思,毁于随!!!