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

【数据库】sqlite

文章目录

    • 1. 基本概述
    • 2. 主要特点
    • 3. 应用场景
    • 4. 优缺点
    • 5. 基本使用示例
    • 6. 在编程语言中的使用
      • 连接到 SQLite 数据库(如果文件不存在会自动创建)
      • 创建表
      • 插入数据
      • 提交事务
      • 查询数据
      • 关闭连接
    • 7. 总结

SQLite 是一个轻量级的关系型数据库管理系统(RDBMS),它以其简洁、高效和易用性在众多应用场景中得到广泛应用。

1. 基本概述

无服务器架构:SQLite 不需要独立的服务器进程或系统来运行,它是一个嵌入式数据库,直接集成在应用程序中。
自包含:所有数据库功能都包含在一个单一的库文件中,简化了部署和管理。
零配置:无需复杂的配置过程,开箱即用。

2. 主要特点

轻量级:SQLite 库的大小通常在几百 KB 左右,非常适合资源受限的环境。
跨平台:支持多种操作系统,包括 Windows、macOS、Linux、iOS 和 Android。
事务支持:完全支持 ACID(原子性、一致性、隔离性、持久性)事务,确保数据的可靠性。
标准 SQL 支持:支持大部分标准 SQL 语法,易于学习和使用。
高性能:在读取操作上表现出色,适用于大多数中小型应用场景。

3. 应用场景

移动应用:广泛用于 Android 和 iOS 应用中,作为本地存储解决方案。
桌面应用:如浏览器(SQLite 用于存储书签、历史记录等)、媒体播放器等。
嵌入式系统:适用于物联网设备、智能家居等需要本地数据存储的设备。
测试和开发:常用于开发阶段的轻量级数据库需求,方便快速迭代。

4. 优缺点

优点
简单易用:无需复杂的安装和配置,适合快速开发和部署。
高效:对于读多写少的应用场景,性能表现优异。
便携性:数据库文件是一个单独的文件,易于备份、迁移和共享。
缺点
并发性有限:在高并发写操作的场景下,性能可能受限。
功能有限:相比于大型数据库(如 MySQL、greSQL),一些高级功能(如存储过程、复杂权限管理)不支持或支持有限。
规模限制:适合中小型数据集,对于极大规模的数据存储和复杂查询可能不适合。

5. 基本使用示例

以下是使用 SQLite 的基本操作示例,使用命令行工具 sqlite3:

创建数据库和表

-- 创建一个名为 example.db 的数据库并进入交互模式
sqlite3 example.db
-- 创建一个用户表
CREATE TABLE users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL
);

插入数据

INSERT INTO users (, email) VALUES ('张三', 'zhangsan@example.com');
INSERT INTO users (, email) VALUES ('李四', '@example.com');

查询数据

SELECT * FROM users;

更新数据

UPDATE users SET email = 'zhangsan_new@example.com' WHERE id = 1;

删除数据

DELETE FROM users WHERE id = 2;

关闭数据库

.exit

6. 在编程语言中的使用

SQLite 支持多种编程语言的接口,如 Python、C/C++、 等。以下是使用 Python 操作 SQLite 的简单示例:

import sqlite3

连接到 SQLite 数据库(如果文件不存在会自动创建)

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

创建表

cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL)
''')

插入数据

cursor.execute('INSERT INTO users (, email) VALUES (?, ?)', ('王五', 'wu@example.com'))

提交事务

conn.commit()

查询数据

cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:print(row)

关闭连接

conn.close()

7. 总结

SQLite 以其轻量级、易用和高效的特性,成为了众多应用程序的首选数据库解决方案。无论是移动开发、桌面应用,还是嵌入式系统,SQLite 都能提供可靠的本地数据存储支持。虽然在某些高并发或复杂需求场景下存在限制,但对于大多数中小型项目来说,SQLite 是一个非常理想的选择。

相关文章:

【数据库】sqlite

文章目录 1. 基本概述2. 主要特点3. 应用场景4. 优缺点5. 基本使用示例6. 在编程语言中的使用连接到 SQLite 数据库(如果文件不存在会自动创建)创建表插入数据提交事务查询数据关闭连接 7. 总结 SQLite 是一个轻量级的关系型数据库管理系统(R…...

详解 C++中的模板

目录 前言 一、函数模板 1.定义 2.函数模板的实现 3.模板函数的实例化 4.模板参数的省略 1.函数模板的实参推导 2.类模板的实参推导 3.默认模板参数 4.特殊情况:无法推导的模板 5.推导失败的情况 二、类模板 1.概念和定义 2.类模板定义 3.类模板的使用 4.类模板…...

基于DAMODEL——Faster-RCNN 训练与测试指南

Faster-RCNN 训练与测试指南 前言 今天我们要来实现一个经典的目标检测模型:Faster-Rcnn。我们使用DAMODEL云平台来实现,这是个很强大的云端平台,功能众多,你可以投你所好去进行你想做的事情。 1. 环境与工具准备 1.1 远程连接…...

考研数据结构——C语言实现冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较每对相邻元素,并在顺序错误的情况下交换它们。这个过程重复进行,直到没有需要交换的元素,这意味着列表已经排序完成。冒泡排序的名字来源于较小的元素会逐…...

labview更换操作系统后打开原VI闪退

labview更换操作系统后打开原VI闪退 问题描述: Windows11由家庭版更换为专业版后,重新安装labview2021,打开原来的项目,项目管理器可以正常打开,但是打开VI却闪退,并报错如下 出现这种原因主要是labview在…...

什么是CAPTCHA?有什么用途?

一、CAPTCHA 的工作原理 CAPTCHA的核心目的是通过呈现人类可以轻松理解但计算机程序难以解决的任务,来阻止恶意的自动化工具。传统的CAPTCHA通过展示扭曲或模糊的文字、图片或者点击操作等,要求用户完成验证任务。这些任务通常需要视觉、听觉或简单的逻辑…...

在虚幻引擎中创建毛发/头发

在虚幻引擎中创建毛发/头发 , 首先开启两个插件 Groom 和 Alembic Groom Importer 打开蒙皮缓存 导出人物模型 将人物导入Blender , 选择需要种植头发的点 指定并选择 点击毛发 这里变成爆炸头了 , 把数量和长度调一下 切换到梳子模式 调整发型 导出为abc , 文件路径不…...

PHP API 框架:构建高效API的利器【电商API接口】

在当今快速发展的互联网时代,API(应用程序编程接口)已成为连接不同应用程序和服务的关键。PHP,作为一种流行的服务器端脚本语言,提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性,以及…...

transformer模型写诗词

加入会员社群,免费获取本项目数据集和代码:点击进入>> 1. 项目简介 该项目是基于A035-transformer模型的诗词生成系统,旨在通过深度学习技术实现古诗词的自动化创作。项目的背景源自当前自然语言处理领域的迅速发展,特别是…...

[大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理

[大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理 Note: 草稿优化中,持续更新,相关代码将统一提供出来~ 1. Ollama简介 Ollama 是一个用于在本地环境中运行和定制大型语言模型的工具。它提供了一个简单而高效的接口,用于…...

开放原子开源基金会OPENATOM

AtomGit_开放原子开源基金会代码托管平台-AtomGit 开放原子开源基金会是致力于推动全球开源事业发展的非营利机构,于 2020 年 6 月在北京成立,由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行等多家龙头科技企业联合发起。 精选项目: 比…...

Docker的监控:docker stats与docker events

Docker的监控:docker stats与docker events 1. 使用`docker stats`监控资源2. 使用`docker events`监控活动3、建议💖The Begin💖点点关注,收藏不迷路💖 Docker提供了docker stats和docker events两个简单而强大的工具来帮助我们监控容器。 1. 使用docker stats监控资…...

jvm专题 之 内存模型

文章目录 前言一个java对象的运行过程jvm内存分布程序的基本运行程序什么是对象?对象与类的关系?由类创建对象的顺序 前言 一个程序需要运行,需要在内存中开辟一块空间类是构建对象的模板,只有类加载到内存中才能创建对象 一个j…...

分布式计算框架

进入Scala模式 终端里输入Scala 创建一个新的Scala文件 vim 文件名.scala 复制粘贴代码 ctrlshift c/v 使用vim 先进入插入模式,可以通过按i键来实现,然后粘贴代码,完成后按Esc键退出插入模式,保存并退出可以通过输入:wq然后按…...

YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)

YOLO交通目标识别 数据集 模型 ui界面 ✓图片数量15000,xml和txt标签都有; ✓class:biker,car,pedestrian,trafficLight,trafficLight-Green,trafficLight-GreenLeft, t…...

Vue学习记录之六(组件实战及BEM框架了解)

一、BEM BEM是一种前端开发中常用的命名约定,主要用于CSS和HTML的结构化和模块化。BEM是Block、Element、Modifier的缩写。 Block(块):独立的功能性页面组件,可以是一个简单的按钮,一个复杂的导航条&…...

为什么会出现电话机器人?语音电话机器人的出现起到了什么作用?

电话机器人的出现是科技发展与市场需求相结合的产物,它们的广泛应用反映了现代社会对效率、成本和服务质量的不断追求。以下是电话机器人出现的几个主要原因。 1. 市场需求的变化 随着经济的发展和消费模式的转变,客户对服务的期望不断提高。他们希望能…...

【CSS Tricks】深入聊聊前端编写css的方法论

目录 引言BEM 规范OOCSS 规范结构与样式分离容器与内容分离 SMACSS 规范ITCSS 规范设置层工具层通用层元素层对象层组件层微调层由此分层后的项目代码结构也会相应做修改,主要有两种形式:文件夹形式文件名形式引用方式按照层级顺序引用 ACSS 规范总结 引…...

多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测(Matlab)

多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测 目录 多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 …...

5.使用 VSCode 过程中的英语积累 - Go 菜单(每一次重点积累 5 个单词)

前言 学习可以不局限于传统的书籍和课堂,各种生活的元素也都可以做为我们的学习对象,本文将利用 VSCode 页面上的各种英文元素来做英语的积累,如此做有 3 大利 这些软件在我们工作中是时时刻刻接触的,借此做英语积累再合适不过&a…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 ​…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...