Python知识点:如何使用SQLite,在Python开发中进行轻量级数据库操作

news/2025/1/15 22:06:26/

在Python开发中,SQLite是一种非常适合轻量级数据库操作的工具,因为它是一个嵌入式数据库,不需要独立的服务器进程。Python内置了对SQLite的支持,使用标准库中的sqlite3模块即可进行数据库操作。下面是如何使用SQLite在Python中进行轻量级数据库操作的详细步骤。

1. 导入SQLite模块

首先,导入Python内置的sqlite3模块:

python">import sqlite3

2. 创建或连接到一个SQLite数据库

你可以使用sqlite3.connect()方法连接到一个SQLite数据库。如果数据库文件不存在,SQLite会自动创建它。

python">conn = sqlite3.connect('example.db')
  • example.db数据库的文件名。如果你想在内存中创建一个数据库(不保存到文件),可以使用:memory:作为数据库名:

    python">conn = sqlite3.connect(':memory:')
    

3. 创建一个游标对象

游标(cursor)对象用于执行SQL命令和查询:

python">cursor = conn.cursor()

4. 创建表

使用SQL语句创建表,例如创建一个用户表:

python">cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,name TEXT,age INTEGER)
''')
  • CREATE TABLE IF NOT EXISTS 确保只有在表不存在时才会创建表。
  • INTEGER PRIMARY KEY 定义了一个自增的主键。

5. 插入数据

使用INSERT INTO语句插入数据:

python">cursor.execute('''INSERT INTO users (name, age) VALUES (?, ?)
''', ("Alice", 30))cursor.execute('''INSERT INTO users (name, age) VALUES (?, ?)
''', ("Bob", 25))# 提交事务
conn.commit()
  • 使用?占位符避免SQL注入。
  • 通过conn.commit()提交事务,确保数据保存到数据库中。

6. 查询数据

使用SELECT语句查询数据:

python">cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()for row in rows:print(row)
  • fetchall()方法获取所有的查询结果,并返回一个包含元组的列表。
  • fetchone()方法用于获取单行结果。

7. 更新数据

使用UPDATE语句更新数据:

python">cursor.execute('''UPDATE users SET age = ? WHERE name = ?
''', (35, "Alice"))# 提交事务
conn.commit()

8. 删除数据

使用DELETE语句删除数据:

python">cursor.execute('''DELETE FROM users WHERE name = ?
''', ("Bob",))# 提交事务
conn.commit()

9. 使用参数化查询

为了避免SQL注入,在执行SQL查询时应始终使用参数化查询:

python">name = "Charlie"
age = 28cursor.execute('''INSERT INTO users (name, age) VALUES (?, ?)
''', (name, age))conn.commit()

10. 关闭连接

操作完成后,关闭游标和数据库连接:

python">cursor.close()
conn.close()

11. 处理异常

为了处理数据库操作中的潜在错误,通常会使用try...except块:

python">try:conn = sqlite3.connect('example.db')cursor = conn.cursor()# 执行数据库操作except sqlite3.Error as e:print(f"An error occurred: {e}")
finally:if conn:conn.close()

12. 使用with语句管理资源

你可以使用with语句来管理连接和游标的资源,确保它们在操作完成后正确关闭:

python">with sqlite3.connect('example.db') as conn:cursor = conn.cursor()cursor.execute('SELECT * FROM users')rows = cursor.fetchall()for row in rows:print(row)

使用with语句,Python会在块结束时自动关闭连接(即使发生异常),简化了资源管理。

13. 高级操作:使用SQLite的ORM框架

虽然直接使用sqlite3模块很方便,但对于复杂应用,ORM(对象关系映射)框架如SQLAlchemy更适合,它允许你通过Python对象操作数据库,同时保留了数据库的强大功能。

小结

SQLite与Python的集成非常紧密,使得轻量级数据库操作变得简单且高效。通过sqlite3模块,你可以在Python应用程序中执行大多数常见的数据库操作,如创建表、插入、更新、删除和查询数据。它是小型应用程序或原型开发的理想选择。


http://www.ppmy.cn/news/1515724.html

相关文章

《机器学习》—— 使用过采样方法实现逻辑回归分类问题

文章目录 一、什么是过采样方法?二、使用过采样方法实现逻辑回归分类问题三、过采样的优缺点 本篇内容是 基于Python的scikit-learn库中sklearn.linear_model 类中的 LogisticRegression()逻辑回归方法实现的,其内容中只是在处理…

STM32常用C语言知识总结

目录 一、引言 二、C 语言基础 1.数据类型 2.变量与常量 3.控制结构 4.数组与指针 5.字符串 6. extern变量声明 7.内存管理 三、STM32 中的 C 语言特性 1.位操作 2.寄存器操作 一、引言 STM32 作为一款广泛应用的微控制器,其开发离不开 C 语言的支持。C …

SOMEIP_ETS_064: String_UTF16FIXED_too_short

测试目的: 验证当设备(DUT)接收到一个小于64字节的UTF16FIXED字符串时,是否能够返回错误消息。 描述 本测试用例旨在检查DUT在接收到一个长度小于64字节的UTF16FIXED字符串的SOME/IP消息时,是否能够返回格式错误&am…

【Linux】什么是虚拟内存?

虚拟内存介绍 Linux虚拟内存(1)什么是虚拟内存?(2)虚拟内存的工作原理(3)虚拟内存的优点(3)Linux中的虚拟内存管理工具总结 Linux虚拟内存 虚拟内存(Virtual…

一、HTML5知识点精讲

一、HTML5介绍 html是用来描述网页的一种语言(就是写网页的一种语言)。 它和CSS,JS称为网页三要素。 HTML负责把元素简单呈现在网页上,是网页的身体CSS负责给网页元素添加各种样式,是网页的衣服JS负责实现各种动态、…

Linux -- git

1 啥是git git是一个代码的历史版本管理工具,通过用树形结构管理一个代码版本可以快速实现回滚等操作 1.1 git基本概念 工作区(Working Directory/Working Tree): 这是你当前正在处理项目文件的地方。你可以在工作区中创建、修改…

零基础学习Redis(6) -- string类型命令使用

redis中,不同的数据结构有不同的操作命令。 redis中的string是按照二进制存储的,不会对数据做任何编码转换。 1. set / get 命令 为了方便使用,redis提供了多个版本的get / set命令来操作字符串 1. set set key value [expiration EX sec…

仿Muduo库实现高并发服务器——EventLoop模块

我刚开始看这个模块时,也是看不明白,什么是事件管理模块。 此时此刻,大领导的背影,还是那么清晰。结合故事模块,慢慢理。 EventLoop模块 成员: 绿色: 利用智能指针对new出来的对象进行管理&…