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

news2024/12/25 9:25:05

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_path
        self.conn = None
        self.cursor = None

    def 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.coloradmin.cn/o/2229144.html

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

相关文章

【实验八】前馈神经网络(4)优化问题

1 参数初始化 模型构建 模型训练 优化 完整代码 2 梯度消失问题 模型构建 模型训练 完整代码 3 死亡Relu问题 模型构建 模型训练 优化 完整代码 1 参数初始化 实现一个神经网络前,需要先初始化模型参数。如果对每一层的权重和偏置都用0初始化&#xff0…

Vscode配置CC++编程环境的使用体验优化和补充说明

文章目录 快速编译运行👺code runner插件方案Code Runner Configuration 直接配置 相关指令和快捷键默认task配置和取消默认 配置文件补充介绍(可选 推荐阅读)😊使用vscode预置变量和环境变量环境变量的使用使用环境变量的好处环境变量可能引起的问题 检…

计算机网络:网络层 —— IPv4 地址与 MAC 地址 | ARP 协议

文章目录 IPv4地址与MAC地址的封装位置IPv4地址与MAC地址的关系地址解析协议ARP工作原理ARP高速缓存表 IPv4地址与MAC地址的封装位置 在数据传输过程中,每一层都会添加自己的头部信息,最终形成完整的数据包。具体来说: 应用层生成的应用程序…

【秋冬进补】灵芝玉叶膏冬令上选减补两不误

秋冬季不仅是进补季,也是肥胖增涨的季节,气温降低了,运动、户外活动量减少了,消耗吸收率减慢,饮食中肉类比例上升,绿蔬少了,油热量增加了,肥胖几率也一样增加了。因此,选…

HTML5 + CSS3 + JavaScript 编程语言学习教程

HTML5 CSS3 JavaScript 编程语言学习教程 欢迎来到这篇关于 HTML5、CSS3 和 JavaScript 的详细学习教程!无论你是初学者还是有一定基础的开发者,这篇文章都将帮助你深入理解这三种技术的核心概念、语法和应用。 目录 HTML5 1.1 HTML5 简介1.2 HTML5 …

10月第4周AI资讯

阅读时间:3-4min 更新时间:2024.10.21-2024.10.25 目录 CoI-Agent:一键生成科研idea的AI研究助手 波兰电台正式启用 AI 主播 Claude可以像人类一样使用计算机 简单文本即可创建个性化语音 AI音乐制作工具新突破 CoI-Agent:…

[TypeError]: type ‘AbstractProvider‘ is not subscriptable

升级pdm到2.20.0后,执行pdm add --dev mypy时报错了: INFO: Adding group dev to lockfile Adding packages to dev dev-dependencies: pytest, pdm, ruff, click, mypy ⠋ 0:00:00 Resolving dependencies See /Users/mac10.12/Library/Logs/pdm/pdm-l…

(大开眼界)想要数据安全,企业需要选择正确的数据备份方案!七种常见数据备份策略方法及优缺点分析!

信息化时代,数据已成为企业的核心资产,其重要性不言而喻。 然而,随着数据价值的不断提升,其脆弱性也愈加明显。自然灾害、硬件故障、人为错误以及恶意攻击等因素,都可能导致数据的丢失或损坏。 因此,选择…

微信公众号(或微信浏览器)获取openId(网页授权)

下单支付需要openId 首先授权去拿到code --然后调用后太换取openId 1.去拿取code 下图中执行到window.location.href ( redirect_uri 传入当前路径-)–执行后重新跳转到当前页面–但是路径上会带上code参数 //然后调用后台方法–将code传给后台得到 o…

如何找到优质的抖音视频素材

随着短视频的流行,越来越多的人开始拍摄和分享自己的作品。但很多创作者常常遇到一个问题:视频素材从哪里来?今天,我就为大家推荐一些优秀的网站,帮助你轻松找到优质的抖音视频素材。 蛙学网 首先推荐的是蛙学网。这个…

django快速基本配置(2)

知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 目录 配置开发目录 配置MySQL数据库 配置Redis数据库 配置工程日志 用户注册 跨域CORS 注意 配置开发目录 libs 存放第三方的库文件 utils 存放项目自己定义的公共函数或类等 apps 存…

【SQL】SQL函数

📢 前言 函数 是指一段可以直接被另一段程序调用的程序或代码。主要包括了以下4中类型的函数。 字符串函数数值函数日期函数流程函数 🎄 字符串函数 ⭐ 常用函数 函数 功能 CONCAT(S1,S2,...Sn) 字符串拼接,将S1,S2&#xff0…

Javaweb 实验4 xml

我发现了有些人喜欢静静看博客不聊天呐, 但是ta会点赞。 这样的人呢帅气低调有内涵, 美丽大方很优雅。 说的就是你, 不用再怀疑哦 实验四 XML 目的: 安装和使用XML的开发环境认识XML的不同类型掌握XML文档的基本语法了解D…

第二十章 Vue组件通信之父子通信

目录 一、引言 二、组件关系分类 三、组件通信的解决方案 3.1. 父子通信流程图 3.2. 父组件通过 props 将数据传递给子组件 3.2.1. 代码App.vue 3.2.2. 代码MySon.vue 3.3. 子组件利用 $emit 通知父组件修改更新 ​编辑3.3.1. 代码App.vue 3.3.2. 代码MySon.vue 3…

使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中

数据下载 数据下载地址:https://datav.aliyun.com/portal/school/atlas/area_selector 我这里下载全国所有城市的数据进行导入 下载安装GDAL 以下是安装 ogr2ogr(GDAL 工具集的一部分)的步骤,适用于 Windows、macOS 和 Linux 系…

pycharm configurations中配置运行fastapi项目

环境 windows11 python3.11 fastapi0.115 使用virtualenv安装fastapi uvicorn pip install fastapi pip install uvicorn目的 在pycharm中可以一键运行,直接把命令行的运行参数配置到pycharm中, 即使用"uvicorn main:app --reload"运行main文件 配置 …

和小北一起Cozeplay | 扣子万圣节企划

前言: 🎃🎃🎃在这个充满神秘与欢乐的万圣节季节,扣子携手小北,为大家带来了一场别开生面的Cozeplay活动!无论你是想要体验一把惊悚刺激的万圣节氛围,还是想要展示自己的创意与才华&a…

工作转型与个人突破提升:如何在社会浪潮中激流勇进

文章目录 一、写在前面二、技术人的迷茫三、做好项目经理其实很难四、从纯技术者转型为管理者面临的事五、最重要的技能【重磅推荐!免费简单内网穿透神器!支持linuxwindows】 一、写在前面 近期工作变动,虽然说对于开发者而言,工…

为什么NMOS管比PMOS管更受欢迎?

NMOS在实际应用中为何比PMOS要更受欢迎。本文将从导电沟道、电子迁移率和器件速度等多个方面来展开讲解。 首先是在性能方面考虑: 与NMOS管驱动能力相同的一个PMOS管,其器件面积可能是NMOS管的2~3倍,然而器件面积会影响导通电阻…

Windows安装Git最新保姆级教程【附安装包】

一、Git下载: 链接:https://pan.baidu.com/s/1_uH-_-cdBb6GD58oLcxvAA 提取码:m366 二、安装Git 1.右键桌面【此电脑】-【属性】,查看操作系统是32位还是64位。 2.下载好对应64位操作系统版本的Git,解压并打开。 我电脑系统是64位…