SQL Lite 备忘录2

目录

[2. SQLite 有哪些事务模式?](#2. SQLite 有哪些事务模式?)

[3.SQLite 支持高并发吗?](#3.SQLite 支持高并发吗?)

[4. WAL 是什么?](#4. WAL 是什么?)

[5. SQLite 分页怎么写?](#5. SQLite 分页怎么写?)

[6. SQLite 支持哪些 ALTER TABLE?](#6. SQLite 支持哪些 ALTER TABLE?)

[7. SQLite 支持索引吗?](#7. SQLite 支持索引吗?)

8.外键与触发器

支持,而且事务具有 ACID 特性。

sql 复制代码
BEGIN;

INSERT INTO users(name) VALUES ('Tom');
UPDATE users SET name = 'Jerry' WHERE id = 1;

COMMIT;

发生错误:

复制代码
ROLLBACK;

事务的核心作用:

要么全部成功,要么全部失败。


2. SQLite 有哪些事务模式?

常见:

bash 复制代码
BEGIN DEFERRED;
BEGIN IMMEDIATE;
BEGIN EXCLUSIVE;

简单理解:

  • DEFERRED:默认,开始事务时不立即获取写锁
  • IMMEDIATE:立即尝试获取写事务资格
  • EXCLUSIVE:获取更强的排他锁

3.SQLite 支持高并发吗?

SQLite 可以很好地支持并发读取,但一个数据库文件同一时间只有一个写入者,因此大量并发写入时容易成为瓶颈。

4. WAL 是什么?

提高并发读写性能,替代传统回滚日志

cpp 复制代码
PRAGMA journal_mode=WAL;

5. SQLite 分页怎么写?

复制代码
SELECT *
FROM users
LIMIT 20 OFFSET 40;

意思:

跳过 40 条,然后返回 20 条。

但大数据量下:

复制代码
LIMIT 20 OFFSET 1000000

可能效率不好。

6. SQLite 支持哪些 ALTER TABLE?

现代 SQLite 支持:

bash 复制代码
RENAME TABLE
RENAME COLUMN
ADD COLUMN
DROP COLUMN

7. SQLite 支持索引吗?

支持。

普通索引:

复制代码
CREATE INDEX idx_user_name
ON users(name);

唯一索引:=普通索引 + 唯一性约束

复制代码
CREATE UNIQUE INDEX idx_user_email
ON users(email);

联合索引:注意左前缀顺序

复制代码
CREATE INDEX idx_user_name_age
ON users(name, age);

部分索引:只给满足某个条件的数据建立索引,而不是给整张表建立索引。

复制代码
CREATE INDEX idx_active_user
ON users(name)
WHERE active = 1;

8.外键与触发器

  • 外键(Foreign Key) :保证表与表之间的数据关系合法,比如 orders.user_id 必须对应 users.id;常用 ON DELETE CASCADE 实现父数据删除时自动删除子数据。SQLite 使用前要开启 PRAGMA foreign_keys = ON
  • 触发器(Trigger) :当 INSERT / UPDATE / DELETE 发生时,数据库自动执行指定 SQL,比如自动记录日志;通过 NEW 获取新数据、OLD 获取旧数据。
相关推荐
东莞市云毅网络有限公司14 小时前
用标准库做网页正文抽取:从 HTML 到结构化字段的轻量实现
python·sqlite·自动化运维·geo·数据监测
小静AI工程实验室2 天前
Python 爬虫翻页为何重复、漏数据?SQLite 复现 OFFSET、复合游标与快照的 8 项检查
爬虫·python·sqlite
刘天远2 天前
Agent最小权限实现:策略表、临时令牌与撤权回归
java·jvm·人工智能·sqlite
cpolar技术支持3 天前
AI Agent 跑半小时就忘目标?用检查点与任务账本做可恢复长任务,cpolar 分享只读时间线
python·sqlite·cpolar·ai agent·任务恢复
东莞市云毅网络有限公司4 天前
用 SQLite FTS5 给企业知识库做问答检索原型:中文二元切分与 BM25 排序
python·sqlite·自动化运维·geo·数据监测
XiaoZhenHua985 天前
C# WinForms + 西门子S7 + SQLite + EPPlus生产数据采集系统架构设计
系统架构·sqlite·c#
张人玉6 天前
基于 C# / .NET 8 + Windows Forms + SQLite 的桌面银行业务演示系统——华夏示范银行管理系统
windows·sqlite·c#·.net
烂蜻蜓6 天前
Django入门教程(三):django-admin与manage.py命令完全指南
数据库·django·sqlite
晊晌_h7 天前
嵌入式从0到精通——SQLite3 数据库
数据库·sqlite·sqlite3