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 操作 SQLite 数据库 #### 定义读取函数 为了从 SQLite 数据库中读取数据,可以定义一个专门用于执行 SQL 查询的函数。此函数会接收数据库路径和查询语句作为参数,并返回查询的结果[^1]。 ```python import sqlite3 def read_data(db_path, query): connection = sqlite3.connect(db_path) cursor = connection.cursor() cursor.execute(query) rows = cursor.fetchall() # 获取所有匹配的数据行 connection.close() return rows ``` #### 创建数据库与表结构 在 Python 中可以通过 `sqlite3` 模块创建一个新的 SQLite 数据库文件,并在其内部定义所需的表格结构[^2]。下面是一个简单的例子,展示如何创建名为 `users` 的表: ```python def create_table(db_path): connection = sqlite3.connect(db_path) cursor = connection.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL ) ''') connection.commit() connection.close() ``` #### 插入数据到表中 向已存在的表中插入新记录的过程也很简单。只需要构建合适的 SQL INSERT 语句即可完成这一操作[^3]。 ```python def insert_user(db_path, user_name, user_age): connection = sqlite3.connect(db_path) cursor = connection.cursor() cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', (user_name, user_age)) connection.commit() connection.close() ``` #### 执行查询并打印结果 最后一步是从数据库中提取所需的信息并将它们显示出来。这通常涉及编写 SELECT 语句来指定要检索哪些列以及条件是什么。 ```python query_result = read_data('py_demo.db3', 'SELECT * FROM users') for row in query_result: print(f'User ID: {row[0]}, Name: {row[1]}, Age: {row[2]}') ``` 上述代码片段涵盖了从初始化数据库直到最终处理数据的主要流程。通过这些基本功能组合起来就可以满足大多数日常应用需求了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值