Python使用SQLite数据库

Python中的SQLite数据库操作与封装示例,

以下为授权转载的一盎司科技公众号文章


SQLite是一款开源的轻量级的关系型数据库,兼容主流操作系统,并可以在主流编程语言中使用。这里简单介绍在Python中使用SQLite数据库。

示例代码地址:

GitHub地址:https://github.com/iounce/python-cpp-demo

Gitee地址:https://gitee.com/iounce_admin/python-cpp-demo

环境

  • Windows操作系统:Windows10(21H2,19044.1766)

  • C++开发环境:Visual Studio 2022社区版

  • Python:3.10.4

sqlite3库

Python中可以使用sqlite3库来操作SQLite数据库,常用API如下:

  • sqlite3.connect: 连接数据库,如果指定的数据库不存在则创建一个新的;

  • connection.cursor:创建一个游标,用来操作当前连接下的数据库;

  • cursor.execute:执行一条sql语句,如insert,select语句;

  • cursor.executescript:执行多条sql语句,如多个insert语句;

  • cursor.fetchall:获取查询结果集的所有行数据,返回一个列表;

  • connection.commit:提交当前事务,真正写入数据;

  • connection.rollback:回滚上一次的提交;

  • connection.close:关闭数据库连接。

Sqlite封装类

根据上述API,这里简单做个封装处理,方便调用。

  • 构造函数__init__:增加数据库文件名的入参,并初始化变量等。

图片

  • 打开函数open():打开SQLite连接,并获取游标用于后续调用,这里加入异常判断。

图片

  • 写入函数insert()/insert_batch():根据设置好的SQL语句,执行写入操作,这里增加了批量接口,方便多条语句的执行。

图片

  • 查询函数query():调用API和insert()函数类似,都是execute接口,但是查询会调用fetch_all接口,用于返回结果。

图片

  • 执行函数execute():这里自定义的执行函数,其实为了方便封装create和delete函数,其实都是调用execute接口,只是方便调用者区分使用,其实调用insert()函数也可以。

图片

  • 关闭函数close():用于关闭游标和连接,释放资源。

图片

示例代码

接下来,我们使用封装好的Sqlite类来编写测试代码,简单起见,直接写SQL语句调用。首先打开数据库,创建名为tb_test的表,然后写入测试数据,接着查询数据,最后关闭连接。

图片

这里只是简单介绍Python下的SQLite的使用,可以根据需要继续完善封装类。

Python 内置了`sqlite3`库,可以方便地操作 SQLite 数据库。以下是使用 Python 操作 SQLite 数据库的常见方法: #### 连接数据库 使用`sqlite3.connect()`函数来连接数据库,如果数据库不存在,会自动创建一个新的数据库文件。 ```python import sqlite3 # 连接到 SQLite 数据库 conn = sqlite3.connect('example.db') ``` #### 创建游标对象 使用`cursor()`方法创建游标对象,用于执行 SQL 语句并处理结果[^4][^5]。 ```python # 创建游标对象 cursor = conn.cursor() ``` #### 创建表 使用`execute()`方法执行 SQL 语句来创建表。 ```python # 创建一个名为 users 的表 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER ) ''') ``` #### 插入数据 使用`execute()`方法执行插入数据的 SQL 语句。 ```python # 插入单条数据 cursor.execute("INSERT INTO users (name, age) VALUES ('John', 25)") # 插入多条数据 users = [('Alice', 30), ('Bob', 35)] cursor.executemany("INSERT INTO users (name, age) VALUES (?,?)", users) ``` #### 查询数据 使用`execute()`方法执行查询语句,并使用`fetchone()`、`fetchall()`或`fetchmany()`方法获取查询结果。 ```python # 查询所有数据 cursor.execute("SELECT * FROM users") all_users = cursor.fetchall() for user in all_users: print(user) # 查询单条数据 cursor.execute("SELECT * FROM users WHERE id = 1") one_user = cursor.fetchone() print(one_user) ``` #### 更新数据 使用`execute()`方法执行更新数据的 SQL 语句。 ```python # 更新数据 cursor.execute("UPDATE users SET age = 26 WHERE name = 'John'") ``` #### 删除数据 使用`execute()`方法执行删除数据的 SQL 语句。 ```python # 删除数据 cursor.execute("DELETE FROM users WHERE id = 1") ``` #### 提交更改和关闭连接 使用`commit()`方法提交更改,使用`close()`方法关闭连接。 ```python # 提交更改 conn.commit() # 关闭连接 conn.close() ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值