第二章 快速安装与第一条命令
2.1 安装 SQLite
好消息:你的电脑大概率已经装好了 SQLite。macOS 和几乎所有 Linux 发行版都预装了它。
┌─────────────────────────────────────────────┐
│ 你的开发机 │
│ │
│ macOS → 系统自带 sqlite3 │
│ Linux → 大多数发行版自带 sqlite3 │
│ Windows → 需要手动下载(3 分钟搞定) │
│ │
│ 无需启动服务,无需配置,直接终端敲命令 │
└─────────────────────────────────────────────┘macOS
macOS 预装了 SQLite,直接打开终端验证:
sqlite3 --version
# 输出类似:3.43.2 2023-10-10 12:14:04 ...如果想升级到最新版本(系统自带的版本可能稍旧):
brew install sqlite
# brew 安装的版本通常在 /opt/homebrew/bin/sqlite3
# 你可能需要调整 PATH 使其优先于系统版本Linux(Ubuntu / Debian / CentOS)
大多数发行版自带 sqlite3,可直接验证:
sqlite3 --version如果没有,一行命令安装:
# Ubuntu / Debian
sudo apt update && sudo apt install sqlite3 -y
# CentOS / RHEL
sudo yum install sqlite -y
# Fedora
sudo dnf install sqlite -yWindows
Windows 不自带 SQLite,但安装非常简单:
- 访问官网下载页面:https://sqlite.org/download.html
- 下载 sqlite-tools-win-x64 压缩包(约 4 MB)
- 解压到任意目录(如
C:\sqlite) - 将该目录添加到系统 PATH 环境变量
- 打开 cmd 或 PowerShell,输入
sqlite3 --version验证
下载页面上你会看到几个文件,选这个:
sqlite-tools-win-x64-xxxx.zip
├── sqlite3.exe ← 命令行工具(你需要的)
├── sqldiff.exe ← 数据库比较工具
└── sqlite3_analyzer.exe ← 数据库分析工具安装总结:比起 MySQL 要装服务、配密码、开端口,SQLite 的"安装"基本等于"确认一下它已经在了"。
2.2 sqlite3 命令行工具入门
sqlite3 是 SQLite 的官方命令行交互工具,相当于 MySQL 的 mysql 客户端或 PostgreSQL 的 psql。
启动与退出
# 打开(或创建)一个数据库文件
sqlite3 my_first.db
# 使用内存数据库(不写入磁盘,退出即消失)
sqlite3 :memory:
# 不指定文件名,进入临时会话
sqlite3退出方式:
sqlite> .quit
# 或按 Ctrl+D(macOS/Linux)/ Ctrl+Z 回车(Windows)第一次完整交互
来,跟着敲一遍:
$ sqlite3 tutorial.db
SQLite version 3.43.2 2023-10-10 12:14:04
Enter ".help" for usage hints.
sqlite> CREATE TABLE users (
...> id INTEGER PRIMARY KEY,
...> name TEXT NOT NULL,
...> age INTEGER
...> );
sqlite> INSERT INTO users (name, age) VALUES ('张三', 25);
sqlite> INSERT INTO users (name, age) VALUES ('李四', 30);
sqlite> INSERT INTO users (name, age) VALUES ('王五', 22);
sqlite> SELECT * FROM users;
1|张三|25
2|李四|30
3|王五|22
sqlite> SELECT name, age FROM users WHERE age > 24 ORDER BY age DESC;
李四|30
张三|25
sqlite> .quit恭喜!你刚刚完成了:建表、插入数据、查询数据——整个过程不需要启动任何服务。
让输出更好看
默认的 | 分隔输出不太友好,可以调整显示模式:
sqlite> .mode column
sqlite> .headers on
sqlite> SELECT * FROM users;
id name age
-- ---- ---
1 张三 25
2 李四 30
3 王五 22常用的显示模式:
| 模式 | 效果 | 适合场景 |
|---|---|---|
.mode column | 列对齐显示 | 日常查看数据 |
.mode table | 带边框的表格(3.37+) | 更清晰的展示 |
.mode csv | CSV 格式输出 | 导出数据 |
.mode json | JSON 格式输出(3.33+) | 给程序消费 |
.mode line | 每个字段一行 | 列很多时便于阅读 |
sqlite> .mode table
sqlite> SELECT * FROM users;
+----+------+-----+
| id | name | age |
+----+------+-----+
| 1 | 张三 | 25 |
| 2 | 李四 | 30 |
| 3 | 王五 | 22 |
+----+------+-----+建议:在
~/.sqliterc文件中写入常用设置,每次启动自动生效:.mode column .headers on .nullvalue [NULL]
2.3 点命令(Dot Commands)速览
在 sqlite3 中,除了标准 SQL 语句,还有一类以英文句号开头的特殊命令——点命令(Dot Commands)。它们不是 SQL,而是 sqlite3 工具自身的控制指令。
SQL 语句 → 发送给 SQLite 引擎执行(需要分号 ; 结尾)
点命令 → sqlite3 工具自己处理(不需要分号)最常用的点命令
| 命令 | 作用 | 示例 |
|---|---|---|
.help | 查看所有点命令的帮助 | .help |
.tables | 列出当前数据库所有表名 | .tables |
.schema | 查看表的建表语句 | .schema users |
.databases | 列出已连接的数据库文件 | .databases |
.mode | 设置输出格式 | .mode table |
.headers on/off | 是否显示列名 | .headers on |
.quit / .exit | 退出 sqlite3 | .quit |
.open | 打开另一个数据库文件 | .open other.db |
.dump | 导出整个数据库为 SQL | .dump |
.read | 执行 SQL 文件 | .read init.sql |
.import | 从 CSV 导入数据 | .import data.csv users |
.output | 将输出重定向到文件 | .output result.txt |
.timer on/off | 显示每条语句的执行时间 | .timer on |
.changes on/off | 显示受影响的行数 | .changes on |
实用场景演示
场景一:快速了解数据库结构
sqlite> .tables
users orders products
sqlite> .schema users
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
);场景二:导出数据为 SQL 文件(备份)
sqlite> .output backup.sql
sqlite> .dump
sqlite> .output stdout这三行的效果:把整个数据库的 CREATE TABLE 和 INSERT 语句写入 backup.sql 文件,然后把输出切回终端。
场景三:从 CSV 导入数据
sqlite> .mode csv
sqlite> .import students.csv students这会把 students.csv 的内容导入到 students 表中。如果表不存在,会自动根据 CSV 的第一行(表头)创建表。
场景四:执行 SQL 脚本文件
sqlite> .read setup.sql适合初始化数据库结构、批量插入测试数据等场景。
小技巧:输入
.help可以看到完整的点命令列表。不确定某个命令的用法时,.help 命令名可以查看详细说明(需要 SQLite 3.39+)。
2.4 可视化工具推荐
命令行虽然高效,但有时候用图形界面浏览数据、设计表结构更直观。以下是两个最受欢迎的 SQLite GUI 工具:
┌───────────────────┐ 读写 ┌──────────────┐
│ GUI 工具 │ ─────────────→ │ database.db │
│ (DB Browser 等) │ ←───────────── │ (磁盘文件) │
└───────────────────┘ └──────────────┘
和 sqlite3 命令行一样,直接读写本地文件,不需要服务器。DB Browser for SQLite(推荐)
- 定位:最流行的开源 SQLite GUI 工具,跨平台(Windows / macOS / Linux)
- 核心功能:
- 可视化浏览和编辑数据
- 图形化创建 / 修改表结构
- 内置 SQL 编辑器,支持语法高亮
- 导入 / 导出 CSV、SQL
- 查看数据库文件的底层信息(页面大小、编码等)
- 官网:https://sqlitebrowser.org
安装方式:
# macOS
brew install --cask db-browser-for-sqlite
# Ubuntu / Debian
sudo apt install sqlitebrowser -y
# Windows
# 从官网下载安装包SQLiteStudio
- 定位:轻量级、功能全面的 SQLite 管理工具
- 核心功能:
- 免安装(解压即用),便携版适合 U 盘携带
- 支持同时打开多个数据库
- 完整的 SQL 编辑器与格式化
- 支持 SQLite 扩展加载
- 官网:https://sqlitestudio.pl
选择建议
| 需求 | 推荐 |
|---|---|
| 初学者日常使用 | DB Browser for SQLite —— 界面友好,社区活跃 |
| 追求轻量免安装 | SQLiteStudio —— 解压即用 |
| 只是偶尔查看数据 | sqlite3 命令行 —— 最快、最轻 |
| VS Code 用户 | SQLite Viewer 插件 —— 直接在编辑器中查看 .db 文件 |
提醒:无论用哪种工具,操作的都是同一个
.db文件。避免同时用多个工具打开同一个数据库并同时写入,可能会遇到锁冲突。
本章小结
| 知识点 | 要点 |
|---|---|
| 安装 | macOS / Linux 通常自带;Windows 从官网下载解压即可 |
| 启动方式 | sqlite3 文件名.db 打开数据库;不指定文件名则进临时会话 |
| 基础交互 | CREATE TABLE → INSERT → SELECT,分号结束 SQL 语句 |
| 输出格式 | .mode column/table/csv/json;.headers on 显示列名 |
| 点命令 | .tables、.schema、.dump、.import 等工具级命令 |
| 配置持久化 | ~/.sqliterc 文件中写入常用设置 |
| GUI 工具 | DB Browser for SQLite(推荐)、SQLiteStudio |
下一章预告:学习数据库与表的基本操作——SQLite 独特的类型亲和性机制、建表语法、约束设置。