SQLite 是一个自包含的、无服务器的、零配置的、事务性的 SQL 数据库引擎,由 D. Richard Hipp 于 2000 年创建。SQLite 是全球 部署量最大的数据库系统——据估计有超过 1 万亿个 SQLite 数据库正在运行。
SQLite 的核心定位是 嵌入式关系数据库。它提供了:
SQLite 由 D. Richard Hipp 于 2000 年创建,最初是作为美国海军项目的数据库引擎。Hipp 的目标是创建一个 轻量级、自包含、不需要服务器的数据库,让应用可以方便地存储结构化数据。
# 创建数据库(自动创建文件)
sqlite3 mydb.db
# 查看数据库
.database
# 查看表
.tables
# 查看表结构
.schema table_name
# 退出
.exit
-- 创建表
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
age INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 插入数据
INSERT INTO users (name, email, age) VALUES
('Alice', 'alice@example.com', 25),
('Bob', 'bob@example.com', 30),
('Charlie', 'charlie@example.com', 35);
-- 查询
SELECT * FROM users;
SELECT * FROM users WHERE age > 25;
SELECT * FROM users ORDER BY age DESC;
-- 更新
UPDATE users SET age = 26 WHERE name = 'Alice';
-- 删除
DELETE FROM users WHERE name = 'Charlie';
-- 事务
BEGIN TRANSACTION;
UPDATE users SET age = age + 1;
COMMIT;
-- 全文搜索(FTS5)
CREATE VIRTUAL TABLE articles USING fts5(title, content);
INSERT INTO articles (title, content) VALUES
('SQLite Tutorial', 'SQLite is a great database'),
('Python Programming', 'Python is easy to learn');
SELECT * FROM articles WHERE articles MATCH 'great';
-- 窗口函数
SELECT name, age,
RANK() OVER (ORDER BY age DESC) AS age_rank
FROM users;
-- JSON 支持
CREATE TABLE data (id INTEGER, json_data TEXT);
INSERT INTO data VALUES (1, '{"name": "Alice", "age": 25}');
SELECT json_extract(json_data, '$.name') FROM data;
-- UPSERT(插入或更新)
INSERT INTO users (name, email, age) VALUES ('Alice', 'alice@example.com', 26)
ON CONFLICT(name) DO UPDATE SET age = excluded.age;
-- RETURNING(返回操作后的数据)
INSERT INTO users (name, email, age) VALUES ('David', 'david@example.com', 28)
RETURNING *;
-- 创建索引
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_age ON users(age);
-- 复合索引
CREATE INDEX idx_users_name_age ON users(name, age);
-- 部分索引
CREATE INDEX idx_users_adult ON users(age) WHERE age >= 18;
-- 查看查询计划
EXPLAIN QUERY PLAN SELECT * FROM users WHERE email = 'alice@example.com';
SQLite 安装、命令行使用、基本 SQL(CRUD)
索引优化、事务、WAL 模式、全文搜索
JSON 支持、窗口函数、UPSERT、RECURSIVE CTE
Python(sqlite3)、Android(SQLiteOpenHelper)、iOS(CoreData/SQLite)
SQLite 是全球部署量最大的数据库。
它可能不是最强大的数据库,但它是最 无处不在 的数据库。从你的手机到浏览器,从汽车到电视,SQLite 默默支撑着数十亿设备的运行。
对于移动应用、桌面应用、嵌入式系统,SQLite 是无可替代的选择。如果你从事移动端开发、桌面开发或物联网开发,SQLite 是必须掌握的技能。
"SQLite 是数据库世界里的隐身英雄。" 📱
—— 技术社区评价