Skip to content

第二章 快速安装与第一条命令


2.1 安装 SQLite

好消息:你的电脑大概率已经装好了 SQLite。macOS 和几乎所有 Linux 发行版都预装了它。

┌─────────────────────────────────────────────┐
│           你的开发机                          │
│                                             │
│   macOS    → 系统自带 sqlite3               │
│   Linux    → 大多数发行版自带 sqlite3        │
│   Windows  → 需要手动下载(3 分钟搞定)      │
│                                             │
│   无需启动服务,无需配置,直接终端敲命令       │
└─────────────────────────────────────────────┘

macOS

macOS 预装了 SQLite,直接打开终端验证:

bash
sqlite3 --version
# 输出类似:3.43.2 2023-10-10 12:14:04 ...

如果想升级到最新版本(系统自带的版本可能稍旧):

bash
brew install sqlite
# brew 安装的版本通常在 /opt/homebrew/bin/sqlite3
# 你可能需要调整 PATH 使其优先于系统版本

Linux(Ubuntu / Debian / CentOS)

大多数发行版自带 sqlite3,可直接验证:

bash
sqlite3 --version

如果没有,一行命令安装:

bash
# Ubuntu / Debian
sudo apt update && sudo apt install sqlite3 -y

# CentOS / RHEL
sudo yum install sqlite -y

# Fedora
sudo dnf install sqlite -y

Windows

Windows 不自带 SQLite,但安装非常简单:

  1. 访问官网下载页面:https://sqlite.org/download.html
  2. 下载 sqlite-tools-win-x64 压缩包(约 4 MB)
  3. 解压到任意目录(如 C:\sqlite
  4. 将该目录添加到系统 PATH 环境变量
  5. 打开 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

启动与退出

bash
# 打开(或创建)一个数据库文件
sqlite3 my_first.db

# 使用内存数据库(不写入磁盘,退出即消失)
sqlite3 :memory:

# 不指定文件名,进入临时会话
sqlite3

退出方式:

text
sqlite> .quit
# 或按 Ctrl+D(macOS/Linux)/ Ctrl+Z 回车(Windows)

第一次完整交互

来,跟着敲一遍:

text
$ 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

恭喜!你刚刚完成了:建表、插入数据、查询数据——整个过程不需要启动任何服务。

让输出更好看

默认的 | 分隔输出不太友好,可以调整显示模式:

text
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 csvCSV 格式输出导出数据
.mode jsonJSON 格式输出(3.33+)给程序消费
.mode line每个字段一行列很多时便于阅读
text
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

实用场景演示

场景一:快速了解数据库结构

text
sqlite> .tables
users    orders    products

sqlite> .schema users
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER
);

场景二:导出数据为 SQL 文件(备份)

text
sqlite> .output backup.sql
sqlite> .dump
sqlite> .output stdout

这三行的效果:把整个数据库的 CREATE TABLEINSERT 语句写入 backup.sql 文件,然后把输出切回终端。

场景三:从 CSV 导入数据

text
sqlite> .mode csv
sqlite> .import students.csv students

这会把 students.csv 的内容导入到 students 表中。如果表不存在,会自动根据 CSV 的第一行(表头)创建表。

场景四:执行 SQL 脚本文件

text
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

安装方式:

bash
# 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 TABLEINSERTSELECT,分号结束 SQL 语句
输出格式.mode column/table/csv/json.headers on 显示列名
点命令.tables.schema.dump.import 等工具级命令
配置持久化~/.sqliterc 文件中写入常用设置
GUI 工具DB Browser for SQLite(推荐)、SQLiteStudio

下一章预告:学习数据库与表的基本操作——SQLite 独特的类型亲和性机制、建表语法、约束设置。

坚持是一种品格