当前位置: 首页 > article >正文

sqlite3,一个轻量级的 Python 库!

【sqlite3一个轻量级的 Python 库】在日常开发与生活中我们经常需要存储小型数据本地工具的配置信息、个人记账数据、桌面软件的用户记录、小程序缓存数据、爬虫临时数据等。这类场景不需要 MySQL、PostgreSQL 这类重型数据库无需安装服务、无需配置权限却需要稳定、标准、开箱即用的存储方案。sqlite3正是 Python 内置的、零配置的轻量级关系型数据库库它无需独立服务端直接以文件形式存储数据支持完整 SQL 语法稳定高效、体积小巧、跨平台兼容是 Python 开发本地工具、小型项目、数据持久化的最佳选择真正实现 “无需部署、开箱即用”完美满足日常生活与轻量开发的所有数据存储需求。一、库的简介实际生活中的核心作用sqlite3 是 Python内置自带的关系型数据库驱动直接对接 SQLite 嵌入式数据库核心优势是无服务、零配置、单文件、纯 Python 支持。在实际生活中它的用处无处不在存储本地记事本的文章内容、保存个人记账软件的收支数据、记录桌面工具的用户配置、存储爬虫爬取的小型数据集、作为 APP 和小程序的本地缓存。它不需要额外安装数据库服务不占用系统资源数据以.db 文件形式保存复制迁移极其方便同时支持标准 SQL 语句满足增删改查、事务、索引等全部核心功能是轻量数据持久化的最优解。二、安装库sqlite3 是Python 官方内置库无需手动安装安装 Python 后可直接导入使用这也是它最大的优势之一真正做到零成本使用。三、基本用法分 4 个核心步骤步骤 1导入库并连接数据库导入 sqlite3调用 connect () 连接数据库不存在则自动创建python运行# 导入内置sqlite3库 import sqlite3 # 连接数据库test.db不存在会自动创建是本地文件 conn sqlite3.connect(test.db)步骤 2创建游标对象游标是执行 SQL 语句的核心工具必须创建python运行# 创建游标 cursor conn.cursor()步骤 3执行 SQL 操作增删改查通过游标执行 SQL 语句完成数据操作python运行# 1. 创建表 cursor.execute(CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)) # 2. 插入数据 cursor.execute(INSERT INTO user (name, age) VALUES (?, ?), (张三, 20)) # 3. 查询数据 cursor.execute(SELECT * FROM user) result cursor.fetchall() print(查询结果, result)步骤 4提交事务并关闭连接增删改必须提交最后关闭游标和连接释放资源python运行# 提交事务增删改必须执行 conn.commit() # 关闭游标与连接 cursor.close() conn.close()四、高级用法sqlite3 支持丰富的高级功能满足轻量开发的复杂需求事务管理支持提交、回滚保证数据安全稳定批量操作executemany () 批量插入 / 更新大幅提升效率条件查询支持 WHERE、ORDER BY、LIMIT、JOIN 等标准 SQL 语法索引优化创建索引加速大数据量查询速度上下文管理器with 语句自动管理连接无需手动关闭。高级用法示例批量插入 上下文管理器python运行import sqlite3 # 上下文管理器自动连接、提交、关闭 with sqlite3.connect(test.db) as conn: cursor conn.cursor() # 批量插入数据 users [(李四, 21), (王五, 22)] cursor.executemany(INSERT INTO user (name, age) VALUES (?, ?), users) # 查询所有数据 cursor.execute(SELECT * FROM user) print(cursor.fetchall())五、实际应用场景sqlite3 轻量、便捷、无配置覆盖日常生活与开发高频场景个人小工具记账本、备忘录、密码管理器、待办事项桌面应用本地配置存储、用户数据记录、历史记录爬虫数据小型爬虫数据存储无需部署数据库服务缓存数据程序临时缓存、配置文件、日志记录嵌入式项目物联网设备、小程序、小型后端服务的数据存储。深度案例代码个人记账管理系统完整可运行python运行import sqlite3 from datetime import datetime # 连接数据库 conn sqlite3.connect(bill.db) cursor conn.cursor() # 创建账单表 cursor.execute(CREATE TABLE IF NOT EXISTS bills (id INTEGER PRIMARY KEY AUTOINCREMENT, type TEXT, money REAL, remark TEXT, time TEXT)) # 添加账单 def add_bill(bill_type, money, remark): now datetime.now().strftime(%Y-%m-%d %H:%M:%S) cursor.execute(INSERT INTO bills (type, money, remark, time) VALUES (?, ?, ?, ?), (bill_type, money, remark, now)) conn.commit() print(账单添加成功) # 查询所有账单 def show_bills(): cursor.execute(SELECT * FROM bills ORDER BY time DESC) bills cursor.fetchall() for bill in bills: print(f{bill[4]} | {bill[1]} | {bill[2]}元 | {bill[3]}) # 统计总收支 def count_total(): cursor.execute(SELECT SUM(money) FROM bills WHERE money0) income cursor.fetchone()[0] or 0 cursor.execute(SELECT SUM(money) FROM bills WHERE money0) outcome cursor.fetchone()[0] or 0 print(f总收入{income}元总支出{outcome}元结余{incomeoutcome}元) # 测试功能 if __name__ __main__: add_bill(餐饮, -25, 午餐) add_bill(工资, 5000, 月薪) show_bills() count_total() conn.close()sqlite3 凭借无需部署、无需配置、轻量高效的特性成为 Python 轻量数据存储的首选方案它体积小、兼容性强、支持标准 SQL既适合新手学习数据库基础也能支撑日常工具和小型项目开发是每一位 Python 开发者都必须掌握的内置神器。无论是个人数据管理还是快速原型开发sqlite3 都能以最低成本实现最高效的数据持久化真正做到开箱即用、无处不在。看完这篇文章相信你已经掌握了 sqlite3 的核心用法它能轻松解决你本地数据存储的所有问题不用再为复杂的数据库配置烦恼。你平时最想做一个什么样的 Python 小工具呢不妨用 sqlite3 给它加上数据存储功能动手实践一下吧

相关文章:

sqlite3,一个轻量级的 Python 库!

【sqlite3,一个轻量级的 Python 库!】在日常开发与生活中,我们经常需要存储小型数据:本地工具的配置信息、个人记账数据、桌面软件的用户记录、小程序缓存数据、爬虫临时数据等。这类场景不需要 MySQL、PostgreSQL 这类重型数据库…...

WarcraftHelper:魔兽争霸3现代化兼容性解决方案技术解析

WarcraftHelper:魔兽争霸3现代化兼容性解决方案技术解析 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款针对经典RTS…...

别再猜了!一文讲透海康、大华等工业相机MAC地址的编码规则与设备识别原理

工业相机MAC地址解码:从硬件标识到智能产线的设备管理艺术 在自动化产线的钢铁丛林中,工业相机如同敏锐的视觉神经,而MAC地址则是它们的唯一身份证。当数百台海康、大华相机在千兆以太网上同时闪烁数据灯时,工程师们面对的不仅是一…...

如何用Video-subtitle-extractor本地提取87种语言视频硬字幕:终极完整指南

如何用Video-subtitle-extractor本地提取87种语言视频硬字幕:终极完整指南 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字…...

从模块复用角度看设计:手把手教你用已有的3-8译码器IP核,快速搭建一个全减器

模块化设计实战:用3-8译码器IP核快速构建全减器 在FPGA和ASIC开发中,模块复用是提升开发效率的关键策略。想象一下,你手头有一个经过充分验证的3-8译码器IP核——可能是公司内部库中的标准模块,或是上个项目留下的可靠代码。本文将…...

Xinference-v1.17.1 LaTeX科研助手:论文写作与公式识别一体化方案

Xinference-v1.17.1 LaTeX科研助手:论文写作与公式识别一体化方案 科研工作者每天都要面对大量的论文写作和公式编辑工作,传统方式既耗时又容易出错。本文将介绍如何用Xinference-v1.17.1构建智能LaTeX科研助手,让AI帮你完成从文献处理到公式…...

大麦网终极抢票指南:Python自动化脚本告别手速烦恼

大麦网终极抢票指南:Python自动化脚本告别手速烦恼 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到心仪的演唱会门票而烦恼吗?每次开票瞬间就被秒光&#xff…...

大模型学习-python基础Day9

一.模块与包模块是包含Python代码的文件,通常以.py为扩展名。模块可以包含函数、类、变量或可执行代码,用于将相关功能组织在一起,便于代码复用和维护。模块的作用代码复用:将常用功能封装为模块,避免重复编写相同代码…...

Face Analysis WebUI新手指南:如何准确分析人脸年龄、性别和头部姿态

Face Analysis WebUI新手指南:如何准确分析人脸年龄、性别和头部姿态 1. 引言:人脸分析的实际价值 想象一下,你正在整理家庭相册,想知道照片中每个人的年龄;或者你运营着一个社交媒体平台,需要分析用户头…...

搞定微信小程序云开发`cloud.callFunction`报错:从`-501000`到成功获取`openid`的保姆级避坑指南

微信小程序云开发实战:从-501000报错到稳定获取openid的完整解决方案 第一次接触微信小程序云开发时,很多人都会被cloud.callFunction报错-501000搞得焦头烂额。这个看似简单的错误代码背后,往往隐藏着从环境配置到代码调用的系统性认知偏差。…...

一台电脑变游戏派对:Nucleus Co-Op让你和好友共享屏幕乐趣

一台电脑变游戏派对:Nucleus Co-Op让你和好友共享屏幕乐趣 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 你是否曾梦想过和朋友一起坐…...

从零到壹嵌入式Linux编程实战教程课:第6课 嵌入式C语言进阶(适配实战)模块一:基础入门

文章目录一、课程目标二、嵌入式C语言基础回顾与实战适配1. C语言与嵌入式开发的关联2. 基本程序结构三、核心基础:数据类型与变量1. 嵌入式常用数据类型2. 变量定义与初始化四、运算符与表达式1. 常用运算符(实战高频)2. 表达式优先级五、分…...

如何用Driver Store Explorer清理Windows驱动垃圾,轻松释放20GB磁盘空间

如何用Driver Store Explorer清理Windows驱动垃圾,轻松释放20GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Windows系统驱动程序管理一直是普通用户的痛点&…...

别再死记硬背了!用Python+Matplotlib可视化理解高斯定理(附代码)

用PythonMatplotlib动态可视化高斯定理:从抽象公式到直观理解 在物理学的课堂上,高斯定理常常是让学生们头疼的一个难点——那些抽象的电场线、闭合曲面和电通量概念,仅靠静态的教科书图示和数学推导很难真正理解。但如果我们换一种方式&…...

从零到壹嵌入式Linux编程实战教程课:第 5 课:Linux 基础命令与文件系统入门

第5课 Linux基础命令与文件系统入门 文章目录 第5课 Linux基础命令与文件系统入门一、课程目标二、Linux 命令基础1. 命令基本格式 三、目录与文件管理命令1. ls — 查看目录内容2. cd — 切换目录3. pwd — 显示当前路径4. mkdir — 创建目录5. rmdir — 删除空目录6. cp — 复…...

3分钟快速解密QQ音乐加密音频:qmc-decoder完整使用指南

3分钟快速解密QQ音乐加密音频:qmc-decoder完整使用指南 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否遇到过这样的困扰:从QQ音乐下载的歌曲…...

3个妙招解决FasterWhisperGUI在Windows系统安装后无法启动的难题

3个妙招解决FasterWhisperGUI在Windows系统安装后无法启动的难题 【免费下载链接】faster-whisper-GUI faster_whisper GUI with PySide6 项目地址: https://gitcode.com/gh_mirrors/fa/faster-whisper-GUI FasterWhisperGUI是一个基于PySide6开发的图形界面工具&#x…...

下午题_试题二

目录 一.题型 注意:需求分析、ER图(概念模型设计)、关系模式化(逻辑结构设计)三者的关系 二.目标分数 三.知识讲解 1.E-R图基本图形元素 ①实体 ②属性 ③联系(重要考点) 2.关系模式&a…...

7种字重思源宋体:免费开源中文字体的完整使用指南

7种字重思源宋体:免费开源中文字体的完整使用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在寻找高质量且完全免费的中文字体解决方案吗?Source Han S…...

VM如何将扩展容量减小

原来:由于硬盘磁盘容量拓展时候分配了300GB,导致虚拟机内部未分配内存161GB。现在:硬盘磁盘容量拓展缩减至144GB,虚拟机内部保留一些未分配内存为E盘扩容。那么如何将过多的未分配内存进行缩减呢:1.找到vmdk文件目录&a…...

保姆级教程:在Ubuntu 20.04上用Docker搞定NVIDIA TAO Toolkit环境搭建(含Jupyter配置)

从零搭建NVIDIA TAO Toolkit开发环境:Ubuntu 20.04Docker全流程指南 第一次接触NVIDIA TAO Toolkit时,最让人头疼的往往不是模型训练本身,而是环境配置这个"前置关卡"。作为专为迁移学习优化的工具链,TAO虽然大幅降低了…...

ABAP 又迎来一个顶层关键字,聊透 ABAP CE 2602 里的 MERGE

在 ABAP 的世界里,新增一个真正意义上的顶层关键字,属于那种很多开发者职业生涯里都碰不上几次的事情。上一次足够有存在感的例子,还得追到 ABAP SQL 在 7.51 里引入 WITH,用来支持 Common Table Expression。到了 ABAP CE 2602,这件事又发生了一次,这次轮到的是 MERGE。…...

不止于调试:挖掘J-Link Commander隐藏命令,玩转芯片信息读取与安全启动

深入探索J-Link Commander:解锁芯片信息读取与安全启动的高级技巧 当大多数开发者将J-Link视为简单的调试工具时,它实际上隐藏着令人惊讶的硬件交互能力。想象一下,你不仅能调试代码,还能直接与芯片内部的各种寄存器对话&#xff…...

从 Hello Excel 走进 SAP iRPA,记录一次最朴素也最重要的自动化起步

把时间拨回 2020 年,很多人刚接触这条产品线时,看到的名字还是 SAP Intelligent RPA。后面这条路线逐步并入了 SAP Build Process Automation 的产品叙事里,所以今天再回头看当年的 Desktop Studio,会更容易理解它为什么既有一点厚重感,又带着很强的工程化味道。SAP 官方后…...

避开这些坑!TWEN-ASR ONE的GPIO、ADC、PWM实战避坑指南(基于V1.0开发板)

TWEN-ASR ONE硬件接口深度优化:GPIO防抖、ADC校准与PWM精调实战 当开发者从TWEN-ASR ONE的基础功能演示进阶到实际项目开发时,往往会遇到一些教科书上不曾提及的"暗坑"。这些看似微小的细节问题,轻则导致功能异常,重则影…...

3大核心技术揭秘:如何用DouyinLiveRecorder智能提取直播文字信息

3大核心技术揭秘:如何用DouyinLiveRecorder智能提取直播文字信息 【免费下载链接】DouyinLiveRecorder 可循环值守和多人录制的直播录制软件,支持抖音、TikTok、Youtube、快手、虎牙、斗鱼、B站、小红书、pandatv、sooplive、flextv、popkontv、twitcast…...

别再只用欧氏距离了!用Python手把手教你实现DTW算法,搞定语音识别中的时间对齐难题

突破时间维度限制:用Python实战DTW算法解决语音对齐难题 当你在开发语音识别系统时,是否遇到过这样的困扰——同一句话被不同用户以不同语速说出,导致传统距离计算方法完全失效?想象一下这样的场景:用户A快速说出"…...

Rhino 7 + Grasshopper 实战:用‘几何管道’和‘命名视图’提升BIM/参数化建模效率

Rhino 7 Grasshopper 实战:用‘几何管道’和‘命名视图’提升BIM/参数化建模效率 在建筑与工业设计领域,参数化建模已经从先锋技术转变为行业标配工具。当设计迭代以小时甚至分钟为单位进行时,传统建模软件的手动操作模式显得力不从心。Rhi…...

他写了十年 Linux,我白嫖了十年

公众号关注 「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !一个普通技术人的十年坚守:『奇妙的 Linux 世界』十周年记十年。这两个字,每次在脑海里默念,都会让我愣神片刻。不是因为骄傲,而是真的…...

Shopee API逆向分析:如何用Java安全地获取商品分类与列表数据(附完整代码)

Java实战:电商平台商品数据采集与分析技术解析 在当今数据驱动的商业环境中,理解电商平台的商品数据结构对于市场研究、竞品分析和商业决策具有重要意义。本文将深入探讨如何通过技术手段获取和分析电商平台的商品分类与列表数据,同时强调技术…...