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 获取旧数据。
相关推荐
YIAN12 小时前
实战|用 DeepSeek + SQLite 从零搭建轻量 Text2SQL 查询助手
后端·sqlite·deepseek
墨天梦15 小时前
B10_文件SharedPreferences与SQLite
jvm·数据库·sqlite
江湖有缘20 小时前
3开源Sqlite数据库管理工具整理合集,可Docker一键部署!
数据库·sqlite·开源
j7~21 小时前
【C++ 标准项目】发布订阅消息队列(篇四):sqlite 与 gtest 断言框架介绍及实战应用
数据库·sqlite·gtest·断言·事件机制·tset宏
东莞市云毅网络有限公司1 天前
企业资料时效性判定:Last-Modified、正文日期与版本字段三路交叉
python·sqlite·自动化运维·geo·数据监测
ggabb2 天前
汉字体系的 “科学性”(义类归类、音义双轨)对现代社会的影响
sqlite
自己的九又四分之三站台2 天前
GeoPackage 到底适合什么场景:从 SQLite 容器到空间数据格式选型
数据库·oracle·sqlite
估值探索者3 天前
【Python量化系统工程实战 #01】数据存储选型 CSVSQLiteMySQL 对比与 SQLite 实战建库
开发语言·jvm·python·sqlite·api接口·数据api接口·股票数据api接口
Studying 开龙wu3 天前
CVAT 导出崩溃排查实录:一个空壳轨迹引发的连锁反应
数据库·sqlite
DingYuan1014 天前
Django模板继承
数据库·sqlite