sqlite3 python 如何使用

devtools/2025/1/2 6:07:32/

在Python中使用SQLite3数据库进行开发是非常直接且便捷的过程,因为SQLite3是Python标准库的一部分,这意味着你不需要额外安装任何包就可以开始使用它。下面我将详细介绍如何在Python中使用SQLite3模块来进行基本的操作,包括连接数据库、创建表、插入数据、查询数据以及关闭连接等。

sqlite3_2">导入sqlite3模块

首先,你需要导入sqlite3模块。这个模块提供了与SQLite数据库交互所需的所有功能。由于它是Python的内置模块,所以可以直接导入而无需安装:

python">import sqlite3

连接到SQLite数据库

接下来,你可以通过调用sqlite3.connect()方法来建立与SQLite数据库的连接。如果你指定的数据库文件不存在,那么它将会被自动创建;如果存在,则会打开现有的数据库。此外,还可以使用:memory:作为参数来创建一个仅存在于内存中的临时数据库:

python">conn = sqlite3.connect('example.db')  # 创建或打开名为 example.db 的数据库
# 或者
conn = sqlite3.connect(':memory:')    # 创建一个内存中的数据库

创建游标对象

一旦建立了连接,就需要创建一个游标(Cursor)对象。游标用于执行SQL语句,并获取执行结果。创建游标的代码如下所示:

python">cursor = conn.cursor()

执行SQL命令

有了游标之后,就可以执行各种SQL命令了。例如,创建一个新的表:

python">cursor.execute('''CREATE TABLE IF NOT EXISTS stocks(date text, trans text, symbol text, qty real, price real)''')

这里使用了IF NOT EXISTS子句,以确保只有当表不存在时才会创建新表。

插入数据

要向表中插入数据,可以使用execute()方法并提供相应的SQL插入语句。为了避免SQL注入攻击,推荐使用参数化查询的方式传递值:

python">cursor.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
# 或者使用参数化查询
data = ('2006-03-28', 'BUY', 'IBM', 1000, 45.0)
cursor.execute("INSERT INTO stocks VALUES (?, ?, ?, ?, ?)", data)

对于批量插入多条记录的情况,可以使用executemany()方法,它接受一个包含多个参数元组的列表作为输入:

python">purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.0),('2006-04-05', 'BUY', 'MSFT', 1000, 72.0),
]
cursor.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)

查询数据

执行完插入操作后,可以通过SELECT语句来检索数据。可以使用fetchone(), fetchall()或者fetchmany(size)方法从结果集中获取行:

python">cursor.execute('SELECT * FROM stocks ORDER BY price')
rows = cursor.fetchall()
for row in rows:print(row)

提交事务和关闭连接

所有的更改都必须提交到数据库才能生效。如果不希望保存所做的更改,可以选择回滚事务。最后不要忘记关闭游标和连接,以释放资源:

python">conn.commit()
# 或者
conn.rollback()cursor.close()
conn.close()

异常处理

为了保证程序的安全性和稳定性,在实际应用中应该总是添加适当的异常处理机制。比如,使用try...except...finally结构来确保即使发生错误也能正确地关闭资源:

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

以上就是Python中使用SQLite3的基本步骤。通过这些简单的API,开发者可以轻松地管理本地存储的数据,同时保持良好的性能和安全性. 如果需要更复杂的数据库操作或是与其他类型的数据库集成,则可能需要考虑其他的ORM框架如SQLAlchemy等工具。不过对于许多小型项目来说,SQLite3已经足够强大并且易于使用了。


http://www.ppmy.cn/devtools/146825.html

相关文章

Fyne ( go跨平台GUI )中文文档-Fyne总览(二)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16及更高版本,ide为goland2021.2??????? ?这是一个系列文章: Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne…

互联网十万个为什么之什么是微服务

微服务(Microservices)是一种软件架构设计模式,它将应用程序分解为小型、自治的服务单元,这些服务单元可以独立部署、扩展和维护,其中每一个服务单元也都是一个微服务。 基于微服务形成的软件架构风格称为微服务架构&…

微信小程序UI自动化测试实践 !

微信小程序UI自动化测试实践 引言: 随着微信小程序的快速发展,越来越多的企业和开发者开始开发小程序来满足用户的需求。而在开发小程序的过程中,UI自动化测试是一个必不可少的环节,可以帮助开发者减少人工测试的工作量&#xff…

深入理解 Docker 网桥配置与网络管理

目录 引言Docker 网络概述Docker 默认网络模式 3.1 Bridge 模式3.2 Host 模式3.3 None 模式 Docker Bridge 网络原理解析 4.1 Bridge 网络的基本架构4.2 网桥的创建与配置4.3 容器与 Bridge 的连接机制 配置自定义 Docker 网桥 5.1 创建自定义网桥5.2 配置子网和网关5.3 管理容…

【PyTorch】(基础七)---- 完整训练流程

首先要明确一点,我们在编写模型、训练和使用模型的时候通常都是分开的,所以应该把Module的编写以及train方法和test方法分开编写。 调用gpu进行训练:在网络模型,数据,损失函数对象后面都使用.cuda(&#x…

性能优化!突破性能瓶颈的尖兵CPU Cache

缓存这个专业术语,在计算机世界中是经常使用到的。它并不是CPU所独有的,比如cdn缓存网站信息,浏览器缓存网页的图像视频等,但本文讲述的是狭义Cache,主要指的是CPU Cache,本文将其简称为"缓存"或…

.net core 的面向对象编程

Python基础 Python是一种高级编程语言,由吉多范罗苏姆于1991年首次发布。它以其简洁的语法、强大的功能和广泛的应用场景而闻名,适合从初学者到专家的各种开发需求。无论是用于数据分析、人工智能、网页开发,还是自动化脚本,Pyth…

Centos常用命令,按功能分类,用户和权限管理等

CentOS 是一个基于 Red Hat Enterprise Linux (RHEL) 的免费开源操作系统,稳定可靠,广泛应用于服务器环境。以下是一份 CentOS 使用教程及常用命令的总结,帮助你快速上手。 由于篇幅限制,这里只涵盖常用命令和基本操作&#xff0c…