【数据库】sqlite

文章目录

    • [1. 基本概述](#1. 基本概述)
    • [2. 主要特点](#2. 主要特点)
    • [3. 应用场景](#3. 应用场景)
    • [4. 优缺点](#4. 优缺点)
    • [5. 基本使用示例](#5. 基本使用示例)
    • [6. 在编程语言中的使用](#6. 在编程语言中的使用)
    • [7. 总结](#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:

创建数据库和表

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

插入数据

sql 复制代码
INSERT INTO users (, email) VALUES ('张三', 'zhangsan@example.com');
INSERT INTO users (, email) VALUES ('李四', '@example.com');

查询数据

sql 复制代码
SELECT * FROM users;

更新数据

sql 复制代码
UPDATE users SET email = 'zhangsan_new@example.com' WHERE id = 1;

删除数据

sql 复制代码
DELETE FROM users WHERE id = 2;

关闭数据库

sql 复制代码
.exit

6. 在编程语言中的使用

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

python 复制代码
import sqlite3

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

python 复制代码
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

创建表

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

插入数据

python 复制代码
cursor.execute('INSERT INTO users (, email) VALUES (?, ?)', ('王五', 'wu@example.com'))

提交事务

python 复制代码
conn.commit()

查询数据

python 复制代码
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
    print(row)

关闭连接

python 复制代码
conn.close()

7. 总结

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

相关推荐
不羁。。1 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
yangchanghua1113 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance3 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai3 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白3 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务3 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂7 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.8 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚10 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队11 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术