SQLite 命令速查表 - SQLite 数据库常用命令大全
SQLite 轻量级嵌入式数据库的必备命令都在这里了,从建库建表到数据导入导出,按场景分类整理,直接复制使用。
返回 数据库数据库连接与基础 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 文件直接导入为表