SQLite3库增删改查实现数据管理

1. SQLite3简介

SQLite3是一个轻量级的、嵌入式的关系型数据库管理系统,在保存测序数据或结果等时可使用,简单高效,并且有无需服务器、单文件存储数据、支持标准SQL、支持跨平台等优势。

本文以Sqlite3数据库为基础,创建代码示例,初始化时接受数据库路径,提供连接和关闭数据库的方法,并包含执行SQL语句、查询、插入、更新和删除数据的方法。

2. Sqlite3数据库操作方法

import sqlite3“”“
方法说明:
connect(): 连接数据库
close(): 关闭数据库连接
execute(): 执行SQL语句
fetch_all(): 执行查询并返回所有结果
insert(): 插入数据
update(): 更新数据
delete(): 删除数据
select(): 查询数据
”“”class SQLiteDatabase:"""SQLite数据库类"""def __init__(self, database_path: str):self.database_path = database_pathself.conn = Noneself.cursor = Nonedef connect(self):# 获取数据库self.conn = sqlite3.connect(self.database_path)# 获取游标self.cursor = self.conn.cursor()def close(self):"""关闭数据库连接"""if self.cursor:self.cursor.close()if self.conn:self.conn.close()def execute(self, query, params=None):"""执行SQL语句"""if params:self.cursor.execute(query, params)else:self.cursor.execute(query)self.conn.commit()def fetch_all(self, query, params=None):"""执行SQL查询语句并返回所有结果"""if params:self.cursor.execute(query, params)else:self.cursor.execute(query)return self.cursor.fetchall()def insert(self, table, data):"""插入数据"""placeholders = ', '.join(['?' for _ in data])columns = ', '.join(data.keys())query = f"INSERT INTO {table} ({columns}) VALUES ({placeholders})"self.execute(query, tuple(data.values()))def update(self, table, data, condition):"""更新数据"""set_clause = ', '.join([f"{key} = ?" for key in data.keys()])query = f"UPDATE {table} SET {set_clause} WHERE {condition}"self.execute(query, tuple(data.values()))def delete(self, table, condition):"""删除数据"""query = f"DELETE FROM {table} WHERE {condition}"self.execute(query)def select(self, table, columns="*", condition=None):"""查询数据"""query = f"SELECT {columns} FROM {table}"if condition:query += f" WHERE {condition}"return self.fetch_all(query)

3. Sqlite3数据库的创建+连接+增+删+改+查+关闭操作

# 创建数据库实例
db = SQLiteDatabase("test.db")# 连接数据库
db.connect()# 创建表
db.execute("""CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,age INTEGER)
""")# 插入数据
print("***** 插入数据 *****")
db.insert("users", {"name": "张三", "age": 30})
db.insert("users", {"name": "李四", "age": 25})# 查询数据
print("***** 查询数据 *****")
results = db.select("users")
# 打印查询结果
for row in results:print(row)print("***** 更新数据 *****")
db.update("users", {"age": 31}, "name = '张三'")print("***** 删除数据 *****")
db.delete("users", "name = '李四'")print("***** 再次查询数据 *****")
results = db.select("users")
for row in results:print(row)# 关闭数据库连接
db.close()

示例

其他Python相关文章

生信数据分析高效Python代码

生信开发中的多进程和多线程编程

轻量级TinyDB数据库文件写入和增删改查操作

Python处理生信分析流程配置文件4种方法

生信分析Python编程高级技巧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat基本配置

目录 1.java容器简介介绍 2.部署tomcat 2.1上传jdk 2.2创建一个软连接 2.3配置环境变量 2.4读取环境文件并且查看java版本 2.5检查jdk tomcat信息 2.6启动tomcat 2.7检测 3.tomcat 目录结构 3.1总体目录 3.2 bin目录 3.3conf 3.4 logs日志 4.运行代码 4.…

如何确保电子商务网站服务器的正常运行时间

对于电商网站而言,服务器的正常运行时间至关重要。网站宕机会直接影响销售额、客户体验以及品牌声誉。本文将详细探讨如何监控并保障服务器的正常运行时间,确保您的电商网站始终保持在线状态, 为什么监控正常运行时间很重要? 减…

【Oracle实验】字段为空的,无法通过排除判断

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.场景描述 需求:查询不是某个机构的数据。 同事SQL:where substr(bank_code,1,9) not in(014009001); 看SQL似乎没什么问题,分析…

【modbus协议】libmodbus库移植基于linux平台

文章目录 下载库函数源码编译路径添加libmodbus 源码分析核心数据结构常用接口函数 开发 TCP Server 端开发TCP Client 端 下载库函数源码 编译路径添加 libmodbus 源码分析 核心数据结构 modbus_t结构体: 这是 libmodbus 的核心数据结构,代表一个 Mod…

OSPF特殊区域及其他特性

不用的链路这状态信息没必要一直保存,要不路由器承受不了。用OSPF 特殊区域解决 1. Stub区域和Totally Stub区域 R1作为ASBR引入多个外部网段,如果Area 2是普通区域,则R3将向该区域注入5类和4类LSA。 当把Area 2配置为Stub区域后&#xff1a…

node升级package.json中的版本

由于项目使用时间过老,升级对应包版本,可以使用新功能 1.使用npm-check-updates这个工具,先全局安装 npm install -g npm-check-updates2.检查package.json中dependencies的最新版本 ncu3.更新dependencies到新版本 ncu -u也是一样的 npx…

探索Python安全字符串处理的奥秘:MarkupSafe库揭秘

文章目录 探索Python安全字符串处理的奥秘:MarkupSafe库揭秘第一部分:背景介绍第二部分:MarkupSafe是什么?第三部分:如何安装MarkupSafe?第四部分:MarkupSafe的简单使用方法1. 使用escape函数2.…

机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用

市场应用背景 DELTA并联机械手是由三个相同的支链所组成,每个支链包含一个转动关节和一个移动关节,具有结构紧凑、占地面积小、高速高灵活性等特点,可在有限的空间内进行高效的作业,广泛应用于柔性上下料、包装、分拣、装配等需要…

【C++】类和对象(二):this指针

大家好,我是苏貝,本篇博客带大家了解C的this指针,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1 this指针的引出2 this指针的特性 1 this指针的引出 我们先来定义一个日期类Date 问&am…

华为原生鸿蒙操作系统的发布有何重大意义和影响:

#1024程序员节 | 征文# 一、华为原生鸿蒙操作系统的发布对中国的意义可以从多个层面进行分析: 1. 技术自主创新 鸿蒙操作系统的推出标志着中国在操作系统领域的自主创新能力的提升。过去,中国在高端操作系统方面依赖于外国技术,鸿蒙的发布…

开发涉及的安全规范整理

文章目录 前言安全场景与措施API调用方式鉴权参数校验日志打印数据保存加密 总结 前言 这篇文章我们来整理下写代码和方案设计中的安全规范问题,内容偏服务端,即使是入门的新人,如果你对安全有所了解会让成熟规范的团队对你高看一眼。安全经常…

用HTML构建酷炫的文件上传下载界面

1. 基础HTML结构 首先&#xff0c;我们构建一个基本的HTML结构&#xff0c;包括一个表单用于文件上传&#xff0c;以及一个列表用于展示已上传文件&#xff1a; HTML <!DOCTYPE html> <html> <head><title>酷炫文件上传下载</title><link …

健康养生的重要性

养生之道&#xff0c;健康相随 在快节奏的现代生活中&#xff0c;养生健康已成为我们不可忽视的话题。随着生活水平的提高&#xff0c;人们越来越注重身体的保养与健康的维护。那么&#xff0c;如何才能做到养生健康&#xff0c;让身体与心灵都得到滋养呢&#xff1f; 首先&a…

鱼跃医疗助力退役军人事务部“高原情暖老兵项目”

10月17日-22日&#xff0c;在退役军人事务部指导下&#xff0c;中国老龄事业发展基金会联合腾讯SSV时光实验室、腾讯天籁实验室等机构发起的“情暖老兵&#xff0c;守望相助—老兵听力关怀计划”项目走进西藏&#xff0c;为退伍老兵提供听力健康筛查服务。西藏鱼跃医疗投资有限…

fastGpt

参考本地部署FastGPT使用在线大语言模型 1 rockylinx 1 ollama安装 在rockylinux中安装的&#xff0c;ollama由1.5G&#xff0c;还是比较大&#xff0c;所有采用在windows下下载&#xff0c;然后安装的方式&#xff0c;linux安装 tar -C /usr -xzf ollama-linux-amd64.tgz #…

U-net医学分割网络——学习笔记

《U-Net: Convolutional Networks for Biomedical Image Segmentation》 一、提出背景 U-Net 的提出是为了解决生物医学图像分割的几个关键问题&#xff1a;需要像素级的精确分割、标注数据稀缺、滑动窗口方法效率低以及多尺度特征融合的需求。U-Net 通过对称的 U 型全卷积结…

Redis+Lua限流的四种算法

1. 固定窗口&#xff08;Fixed Window&#xff09; 原理&#xff1a; 固定窗口算法将时间划分为固定的时间段&#xff08;窗口&#xff09;&#xff0c;比如 1 秒、1 分钟等。在每个时间段内&#xff0c;允许最多一定数量的请求。如果请求超出配额&#xff0c;则拒绝。 优点…

【linux网络编程】| 网络套接字socket | 初识网络开发

前言&#xff1a;本篇内容将要正式进入网络的编程当中。 本篇的目的是为了能够看完就可以上手写一些网络代码了。 但是本篇也并不会单纯的只讲接口&#xff0c; 前面还是会铺垫一些理论知识更好的认识网络传输。下面&#xff0c; 开始我们的学习吧! ps&#xff1a;本篇内容的某…

摄像头点击器常见问题——摄像头视窗打开慢

【嵌入式开发】可编程4k蓝牙摄像头点击器_能编程的摄像头-CSDN博客 拥有上述文章产品的朋友出现标题所述问题&#xff0c;可继续往下阅读 出现以上问题&#xff0c;摄像头画面打开较慢&#xff0c;可以按以下操作进行设置 在环境变量里设置一下这个参数&#xff0c;值设置为1&…

美国超大型数据泄露事件曝光:超1亿人数据被盗

联合健康&#xff08;UnitedHealth&#xff09;首次证实&#xff0c;在 Change Healthcare 勒索软件攻击中&#xff0c;有超过 1 亿人的个人信息和医疗保健数据被盗&#xff0c;这是近年来最大的医疗保健数据泄露事件。 今年 5 月&#xff0c;UnitedHealth 首席执行官安德鲁-威…