sqlite是什么

SQLite 是一款嵌入式关系型数据库 ,由 D. Richard Hipp 于 2000 年发布,它的核心特点是轻量级、零配置、自包含,不需要独立的服务器进程,直接嵌入到应用程序中运行。

核心特性

1 无服务器架构

不同于 MySQL、PostgreSQL 等需要独立运行的数据库服务器,SQLite 数据库以单一文件(通常以 .db 或 .sqlite 为扩展名)的形式存在,直接与应用程序绑定,通过库文件(如 C 库)被应用程序调用,无需额外启动服务。

2 零配置

无需安装、无需设置用户名 / 密码、无需配置网络,只要应用程序能访问数据库文件,就能直接读写数据,极大简化了部署流程。

3 跨平台兼容

支持 Windows、macOS、Linux 等主流操作系统,以及 Android、iOS 等移动平台,甚至能在嵌入式设备(如智能手表、路由器)中运行。

4 ACID 兼容

遵循数据库事务的 ACID 特性(原子性、一致性、隔离性、持久性),确保数据操作的可靠性,支持事务回滚、崩溃恢复等功能。

5 轻量级

核心库体积极小(仅几百 KB),内存占用低,适合资源受限的环境(如移动端、嵌入式设备)。

适用场景

SQLite 适合以下场景:

  • 嵌入式设备:智能家电、物联网设备等资源有限的场景。
  • 移动应用:Android/iOS 本地数据存储(如通讯录、设置信息)。
  • 小型工具 / 应用:需要本地数据存储的桌面软件(如笔记工具、文档编辑器)。
  • 开发 / 原型验证:快速搭建开发环境,无需配置数据库服务器。
  • 临时数据存储:日志记录、缓存数据等场景。

不适合的场景

  • 高并发写入:由于 SQLite 是文件级锁,多进程 / 线程高并发写入时性能会大幅下降。
  • 大型分布式系统:不支持网络访问和分布式部署,无法满足大型系统的扩展性需求。
  • 海量数据存储:虽然理论上支持 TB 级数据,但性能会随数据量增长明显下降。

如何使用

SQLite 支持标准 SQL 语法,可通过多种编程语言(Python、Java、C#、Go 等)访问,以 Python 为例:

python 复制代码
import sqlite3

# 连接数据库(若文件不存在则自动创建)
conn = sqlite3.connect('example.db')

# 创建游标
cursor = conn.cursor()

# 创建表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT,
        age INTEGER
    )
''')

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 30))

# 提交事务
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())  # 输出: [(1, 'Alice', 30)]

# 关闭连接
conn.close()

总结来说,SQLite 是一款 "即拿即用" 的轻量级数据库,以简洁、高效、易部署著称,在本地存储和嵌入式场景中被广泛应用。

相关推荐
众链网络11 小时前
年卡跨淡旺季的有效期模型:不可用日期、次数与顺延规则
java·前端·数据库
shunwahma11 小时前
MySQL 替代选型,为什么首选 OceanBase 集中式?
数据库·mysql·oceanbase
n 55!w !10812 小时前
MySQL数据库笔记整理1
数据库·笔记·mysql
李兆龙的博客12 小时前
从一到无穷大 #104:面向 SSD 的数据库写入设计——从 FTL 到应用协同
数据库·ssd·存储引擎
千桐科技12 小时前
qData 数据中台开源版 v1.6.4 发布:聚焦使用反馈,功能细节与产品体验持续优化
数据库·开源·qdata
fox063312 小时前
预约类平台的责任边界建模:从一个证件办理预约平台的流程设计说起
大数据·数据库·搜索引擎·全文检索·生活
John_Hui12 小时前
MySQL基础知识
数据库·sql·mysql·1024程序员节
DolphinDB13 小时前
QuantLib 之外,衍生品定价还能怎么选?DolphinDB Monte Carlo + PDE 工具实测
数据库·时序数据库·量化金融·dolphindb
泡海椒13 小时前
深度解析JQuick-SQL 逻辑计划到物理计划生成机制|分布式SQL原理
数据库·分布式·sql
恒知学术13 小时前
时间序列异常检测论文怎么查?我把 3 轮检索和筛选表写成了可复现流程
数据库·文献检索·谷歌学术