SQLite 命令

SQLite 命令大全(2025 最新版)

SQLite 命令分为 两大类

  1. SQL 命令(标准 SQL,操作数据)
  2. 点命令(Dot Commands)(SQLite 特有,操作数据库环境)

一、点命令(.help 查看全部)

sqlite> 提示符下输入 .help 可查看完整列表。

命令说明示例
.help显示所有点命令帮助.help
.quit / .exit退出 SQLite.quit
.databases显示当前数据库文件.databases
.tables列出所有表.tables
.schema [表名]查看建表语句.schema users
.indexes [表名]查看索引.indexes users
.headers on/off显示/隐藏列标题.headers on
.mode column/list设置输出格式.mode column
.width num1 num2设置列宽.width 10 20
.separator "x"设置分隔符.separator ","
.output 文件名输出结果到文件.output result.txt
.read 文件名执行 SQL 文件.read init.sql
.dump [表名]导出数据库为 SQL.dump
.backup 文件名备份数据库.backup backup.db
.restore 文件名恢复数据库.restore backup.db
.timer on/off开启查询计时.timer on
.changes on/off显示影响行数.changes on

二、常用点命令组合(推荐配置)

.headers on          -- 显示列名
.mode column         -- 表格格式
.width auto          -- 自动列宽(3.25+)
.nullvalue NULL      -- NULL 显示为 NULL

保存为 ~/.sqliterc(Linux/macOS)或 %APPDATA%\sqlite\sqliterc(Windows)


三、SQL 命令(核心操作)

操作命令示例
创建数据库自动创建(连接时)sqlite3 mydb.db
创建表CREATE TABLECREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT);
插入数据INSERT INTOINSERT INTO users(name) VALUES('张三');
查询数据SELECTSELECT * FROM users WHERE age > 20;
更新数据UPDATEUPDATE users SET age = 25 WHERE id = 1;
删除数据DELETEDELETE FROM users WHERE id = 1;
删除表DROP TABLEDROP TABLE users;
创建索引CREATE INDEXCREATE INDEX idx_name ON users(name);
事务BEGIN; COMMIT; ROLLBACK;BEGIN; INSERT ...; COMMIT;

四、实用命令速查表

1. 数据库信息

.databases          -- 列出所有数据库
.tables             -- 列出所有表
.schema users       -- 查看 users 表结构
.indexes users      -- 查看 users 表索引

2. 导入导出

-- 导出整个数据库为 SQL
.dump > backup.sql

-- 导出单表
.dump users > users.sql

-- 执行 SQL 文件
.read init.sql

-- CSV 导入
.mode csv
.import data.csv mytable

3. 性能分析

.timer on           -- 开启计时
EXPLAIN QUERY PLAN SELECT * FROM users WHERE email = 'a@example.com';

4. 备份恢复

.backup mybackup.db
.restore mybackup.db

五、命令行一键操作(无需进入 sqlite>)

# 查看版本
sqlite3 --version

# 执行 SQL 并退出
sqlite3 mydb.db "SELECT * FROM users;"

# 执行 SQL 文件
sqlite3 mydb.db < init.sql

# 以 CSV 模式执行
sqlite3 -csv mydb.db "SELECT * FROM users;" > output.csv

# 批量模式(无交互)
sqlite3 -batch mydb.db "PRAGMA foreign_keys = ON;"

# 交互模式 + 美化
sqlite3 mydb.db -header -column

六、PRAGMA 命令(数据库配置)

PRAGMA说明示例
foreign_keys = ON开启外键PRAGMA foreign_keys = ON;
journal_mode = WAL启用 WAL 模式(高并发)PRAGMA journal_mode = WAL;
cache_size = 10000设置缓存页数PRAGMA cache_size = 10000;
synchronous = NORMAL性能优化PRAGMA synchronous = NORMAL;
temp_store = MEMORY临时表放内存PRAGMA temp_store = MEMORY;

生产环境推荐

PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;

七、完整示例:从零开始

# 1. 创建数据库
sqlite3 school.db

# 2. 在 sqlite> 中执行
sqlite> .headers on
sqlite> .mode column

sqlite> CREATE TABLE students (
   ...>   id INTEGER PRIMARY KEY,
   ...>   name TEXT NOT NULL,
   ...>   class TEXT
   ...> );

sqlite> INSERT INTO students (name, class) VALUES ('张三', '高一1班');

sqlite> SELECT * FROM students;
id          name        class
----------  ----------  ----------
1           张三        高一1班

sqlite> .quit

八、命令速记卡(贴在桌边)

.databases      .tables         .schema
.headers on     .mode column    .width auto
.quit           .dump           .backup x.db
.read file.sql  .import csv     .output file
PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;

九、学习建议

  1. 背熟 10 个点命令.tables.schema.dump.quit
  2. .sqliterc 美化输出
  3. 掌握 PRAGMA 优化性能
  4. .timer on 分析慢查询

下一步? 回复:

  • 创建表 → 详细建表语法
  • 导入导出 → CSV、JSON、SQL 文件操作
  • Python 命令 → 用 Python 调用 SQLite
  • GUI 命令 → DB Browser 快捷键

现在试试

sqlite3 test.db ".tables"

看看有没有表!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注