SQLite 命令速查表 - SQLite 数据库常用命令大全

SQLite 轻量级嵌入式数据库的必备命令都在这里了,从建库建表到数据导入导出,按场景分类整理,直接复制使用。

数据库·共 52 条命令·最后更新 2026-07-21
返回 数据库

数据库连接与基础 6

sqlite3 file.db
打开或创建 SQLite 数据库文件
.open file.db
在 sqlite3 命令行中打开数据库文件
.databases
列出所有已打开的数据库连接
.tables
列出当前数据库中的所有表
.quit
退出 sqlite3 命令行工具
.help
查看所有可用点命令的帮助信息

表操作 6

CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);
创建表,定义列和约束
DROP TABLE IF EXISTS users;
删除表(如存在)
ALTER TABLE users ADD COLUMN email TEXT;
添加新列
CREATE TABLE backup AS SELECT * FROM users;
通过查询结果创建新表
CREATE TEMP TABLE temp_data (id INT);
创建临时表,会话结束后自动删除
.schema users
查看表的建表语句

数据操作 7

INSERT INTO users (name, age) VALUES ('Tom', 25);
插入单条记录
INSERT INTO users (name, age) VALUES ('Tom', 25), ('Jerry', 30);
批量插入多条记录
SELECT * FROM users;
查询所有记录
UPDATE users SET age = 26 WHERE name = 'Tom';
更新符合条件的记录
DELETE FROM users WHERE name = 'Tom';
删除符合条件的记录
REPLACE INTO users (id, name, age) VALUES (1, 'Tom', 26);
插入或替换(基于主键或唯一约束)
INSERT INTO users (id, name) VALUES (1, 'Tom') ON CONFLICT(id) DO UPDATE SET name = excluded.name;
UPSERT:冲突时更新,不冲突时插入

查询进阶 8

SELECT * FROM users WHERE age > 18;
WHERE 条件过滤
SELECT * FROM users ORDER BY age DESC, name ASC;
多字段排序
SELECT status, COUNT(*) FROM users GROUP BY status;
GROUP BY 分组统计
SELECT status, COUNT(*) FROM users GROUP BY status HAVING COUNT(*) > 5;
HAVING 过滤分组结果
SELECT * FROM users LIMIT 10 OFFSET 20;
分页:限制返回数量并跳过前 20 条
SELECT u.name, o.total FROM users u JOIN orders o ON u.id = o.user_id;
INNER JOIN 关联查询
SELECT DISTINCT city FROM users;
去重查询
SELECT COUNT(*), AVG(age), MAX(age), MIN(age) FROM users;
聚合函数:计数、平均值、最大值、最小值

索引与约束 6

CREATE INDEX idx_users_name ON users(name);
创建索引加速查询
CREATE UNIQUE INDEX idx_users_email ON users(email);
创建唯一索引
DROP INDEX IF EXISTS idx_users_name;
删除索引
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT UNIQUE NOT NULL, age INT DEFAULT 0);
定义列级约束:主键、唯一、非空、默认值
CREATE TABLE orders (id INTEGER PRIMARY KEY, user_id INT REFERENCES users(id));
定义外键约束
CREATE TABLE products (id INT, price REAL CHECK(price > 0));
CHECK 约束:限制值范围

事务与锁 7

BEGIN TRANSACTION;
开始事务
COMMIT;
提交事务,持久化所有更改
ROLLBACK;
回滚事务,撤销所有未提交的更改
SAVEPOINT sp1;
设置保存点,支持部分回滚
ROLLBACK TO sp1;
回滚到指定保存点
RELEASE SAVEPOINT sp1;
释放保存点
PRAGMA journal_mode=WAL;
设置 WAL 模式提升并发读写性能

导入导出与工具 6

.import --csv data.csv my_table
将 CSV 文件导入为表
.output dump.sql
将后续输出重定向到文件
.dump
导出整个数据库为 SQL 文本
.read dump.sql
执行 SQL 文件(导入备份)
VACUUM;
回收空闲空间,减小数据库文件体积
ANALYZE;
更新统计信息帮助查询优化器

实用函数与 PRAGMA 6

PRAGMA table_info(users);
查看表的列信息
PRAGMA index_list(users);
查看表的索引列表
PRAGMA integrity_check;
检查数据库完整性
SELECT datetime('now');
获取当前日期时间
SELECT strftime('%Y-%m-%d', 'now');
格式化日期输出
SELECT length('hello'), typeof(42), randomblob(16);
length/typeof/randomblob 实用函数

💡 提示

  • SQLite 是零配置数据库,无需安装服务端进程
  • 使用 .dump 备份数据库,VACUUM 回收空间
  • PRAGMA journal_mode=WAL 可显著提升并发性能
  • SQLite 支持大部分 SQL-92 标准,但不支持 RIGHT/FULL JOIN
  • .import 命令支持 CSV 文件直接导入为表