Python之Sqlite3数据库基本操作

在一些小的应用中,难免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,本文主要以一个简单的小例子,简述Python在Sqlite数据库方面的应用,仅供学习分享使用,如有不足之处,还请指正。

涉及知识点

  1. sqlite3是Python集成的内置类库,提供Python操作sqlite3的相关接口。
  2. sqlite3.connect(dbfile) 创建数据库连接,返回一个连接对象
  3. conn.cursor() 创建游标对象,通过返回的cursor对象,执行相应的SQL语句。
  4. cur.execute(sql, *args) 执行语句
  5. conn.commit() 提交执行的结果到数据库
  6. conn.rollback() 回退执行的结果
  7. cur.close() 关闭cursor对象
  8. 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()

 关于本例子的执行源码,可通过链接进行下载,如下所示:

源码链接

备注

 业精于勤,荒于嬉;行成于思,毁于随!!!