SQLite 命令:
退出SQLite方法(你猜为什么这个在前面):
方法一:输入 .quit或者 .exit 并回车
方法二:使用快捷键: Ctrl + D 组合键。
这代表“文件结束符”(EOF),在 Linux 终端中这通常意味着退出当前交互式程序。
点命令(元命令)—— 管理数据库和查看信息
在 sqlite> 提示符下输入,不需要以分号结尾。
| 命令 | 缩写 | 作用 | 使用示例 |
|---|---|---|---|
.help |
无 | 显示所有点命令的帮助信息(最常用,记不住时就敲它) | .help |
.tables |
无 | 列出当前数据库中的所有表 | .tables |
.schema |
无 | 查看表的创建语句(表结构) | .schema 表名(不跟表名则显示全部) |
.database |
无 | 查看当前打开的数据库文件路径 | .database |
.quit / .exit |
无 | 退出 SQLite 命令行 | .quit |
.open |
无 | 打开或创建新的数据库文件 | .open test.db |
.read |
无 | 执行外部 SQL 脚本文件 | .read create.sql |
.output |
无 | 将查询结果输出到文件(而不是屏幕) | .output result.txt 后再执行查询 |
.import |
无 | 从 CSV 等文本文件导入数据到表 | .import data.csv 表名 |
.export |
无 | 将表数据导出为 CSV 文件 | .export --csv 表名 > data.csv |
.header on/off |
无 | 显示或隐藏查询结果的列名(默认 off,建议开启) | .header on |
.mode |
无 | 切换输出格式(如 column、csv、list、html) | .mode column(使对齐更美观) |
.nullvalue |
无 | 设置 NULL 值显示的替代文本 | .nullvalue NULL 或 .nullvalue (空) |
.show |
无 | 查看当前所有设置(header、mode 等) | .show |
.shell |
无 | 临时退出到系统 Shell 执行命令(输入 exit 返回) | .shell ls -l |
.clone |
无 | 克隆当前数据库到一个新文件 | .clone new.db |
使用技巧:刚进入 SQLite 时,建议先执行
.header on和.mode column,这样查询结果带列名且对齐美观。
SQL 语句(数据操作)—— 增删改查
这些是标准的 SQL 命令,必须以分号 ; 结尾。
| 分类 | 关键词 | 作用 | 示例 |
|---|---|---|---|
| 查询 | SELECT |
查询表中的数据(最核心) | SELECT * FROM users WHERE age > 18; |
| 插入 | INSERT INTO |
向表中插入新数据 | INSERT INTO users (name, age) VALUES ('张三', 25); |
| 更新 | UPDATE |
修改表中的已有数据 | UPDATE users SET age = 26 WHERE name = '张三'; |
| 删除 | DELETE FROM |
删除表中的数据(可带条件) | DELETE FROM users WHERE age < 18; |
| 建表 | CREATE TABLE |
创建新表并定义字段 | CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT); |
| 删表 | DROP TABLE |
删除整个表(包含数据和结构) | DROP TABLE users; |
| 修改表 | ALTER TABLE |
添加或重命名列(不支持删列) | ALTER TABLE users ADD COLUMN email TEXT; |
| 创建索引 | CREATE INDEX |
为字段创建索引以加速查询 | CREATE INDEX idx_name ON users(name); |
| 事务控制 | BEGIN / COMMIT / ROLLBACK |
批量操作的回滚和提交 | BEGIN; 执行多条操作 COMMIT; |
实用组合技巧
| 场景 | 操作步骤 |
|---|---|
| 查看表结构 | .tables 列出表 → .schema 表名 查看详细结构 |
| 美化输出 | .header on + .mode column(让结果像表格一样对齐) |
| 导出数据为 CSV | .mode csv → .output data.csv → SELECT * FROM 表名; → .output stdout(恢复输出到屏幕) |
| 导入 CSV 文件 | .mode csv → .import data.csv 表名(注意表需提前存在) |
| 清屏 | .shell clear(调用系统 clear 命令) |
| 查看当前数据库 | .database(显示路径,确认你在操作哪个文件) |
两个救命技巧
- 忘记命令:输入
.help,所有点命令都会列出来。 - 误入多行模式:如果不小心输错了 SQL(比如没写分号),提示符变成
...>,按Ctrl + C取消此行,回到sqlite>。