【SQLite】SQLite3下载、安装、数据库操作一篇搞定(附官网安装包)

SQLite3安装包下载地址:SQLite3安装包(源自官网,Windows+Linux+macOS,放心使用)

SQLite 是目前全球使用最广泛的嵌入式关系数据库引擎,它不是一个独立的数据库服务器(不像 MySQL 或 PostgreSQL 那样需要安装和启动服务),而是一个 C 语言库,直接嵌入到应用程序中。这意味着它不需要配置、不需要管理员、不需要网络端口,所有数据都存储在一个单一的 .db 或 .sqlite 文件中。

SQLite 在移动应用、嵌入式设备、桌面软件和开发测试中几乎无处不在。Android 和 iOS 的系统应用数据存储、浏览器书签、微信聊天记录、不少游戏存档,底层都是 SQLite。它的核心价值是零配置、零服务、一个文件就能跑关系型数据库。

对比一下常见的数据库方案:

特性 SQLite MySQL PostgreSQL SQL Server
类型 嵌入式关系型数据库 关系型数据库(客户端-服务器) 关系型数据库(客户端-服务器) 关系型数据库(客户端-服务器)
安装配置 零配置(无服务器) 需安装服务端 需安装服务端 需安装服务端
存储方式 单文件 (.db) 多文件+服务管理 多文件+服务管理 多文件+服务管理
并发支持 单写多读 高并发 高并发 高并发
SQL 标准 大部分支持 完整 完整 完整
数据类型 动态类型 静态类型 静态类型 静态类型
数据库大小限制 281TB 取决于系统 无限制 524PB
跨平台 所有平台 所有平台 所有平台 仅 Windows+Linux
适合场景 本地/嵌入式/移动 Web 应用 Web 应用/数据分析 企业级应用
价格 完全免费 免费+付费 完全免费 付费

SQLite 最大的吸引力在于,你不需要装任何服务、不需要创建用户和权限、不用管端口和防火墙,下载一个命令行工具就能开始写 SQL。

sqlite3 是官方提供的 SQLite 命令行交互工具,下载后你会在终端里直接输入 SQL 语句来创建数据库、建表、插入和查询数据,不需要安装任何图形界面。

对于开发者快速测试、数据分析师处理本地数据、或者想学 SQL 的初学者来说,sqlite3 是一个零门槛的入门工具,打开终端输入一条命令就能开始写 SQL,比装 MySQL 那一整套环境省事太多了。这套教程就是教你下载、安装和使用 sqlite3 命令行工具的完整流程。

SQLite下载

SQLite3安装包下载地址:SQLite3安装包(源自官网,Windows+Linux+macOS,放心使用)

如果需要在程序中使用 SQLite,还需要下载对应平台的 DLL 或动态库文件。

SQLite安装(含配置环境变量)

下载 sqlite-tools-win-x64 压缩包,解压到一个文件夹里,比如解压到 D:\sqlite(记住这个路径):


为了在命令行中直接使用 sqlite3 命令,需要把这个文件夹路径添加到系统环境变量的 Path 中,操作步骤是:
1)右键点击"此电脑"或"计算机",选择"属性":


2)然后点击"高级系统设置":


3)在系统属性窗口中,点击"环境变量"按钮:


4)在系统变量部分,找到并选中"Path"变量,点击"编辑":


5)点击"新建",添加 "D:\sqlite",然后点击"确定"保存所有更改。


6)验证安装是否成功。按组合键 Win+R,输入cmd打开命令提示符(cmd),输入 sqlite3 显示出版本信息,说明配置成功:

sqlite3常用命令

SQLite 不需要像 MySQL 那样启动数据库服务,也不需要创建数据库。在命令行中输入 sqlite3 test.db,就会自动创建一个名为 test.db 的数据库文件(如果不存在的话)并进入交互模式。

下面列出最常用的几个 sqlite3 命令:

命令 使用场景 作用
sqlite3 test.db 启动时 打开或创建 test.db 数据库,进入交互模式
.open test.db 交互模式 在交互模式中打开或创建 test.db(切换数据库不用退出重开)
.databases 交互模式 查看当前打开了哪些数据库文件及其路径
.tables 交互模式 列出当前数据库中的所有表
.schema 表名 交互模式 查看指定表的建表语句(不跟表名则查看所有表)
.import 文件.csv 表名 交互模式 将 CSV 文件的数据导入到指定表中
.output 文件名 交互模式 将后续查询结果保存到文件(.output stdout 恢复屏幕输出)
.dump 交互模式 将整个数据库导出为 SQL 脚本,用于备份和迁移
.mode column 交互模式 设置查询结果按列对齐显示(加 .headers on 同时显示列名)
.exit / .quit 交互模式 退出 sqlite3 交互模式
.help 交互模式 查看所有可用点命令的帮助列表

上面的表格只列了 sqlite3 本身的命令,熟悉了这些就能在终端里流畅操作了在数据库中执行增删改查的操作(如 CREATE TABLE、SELECT),直接在 sqlite> 提示符后输入,以分号结尾。

【实例】创建图书管理数据库

下面用一个实际的例子来演示 sqlite3 的完整操作流程,创建一个图书管理数据库,包含图书表和作者表,然后做增删改查。

1)创建数据库

打开命令行,输入 sqlite3 books.db。如果 books.db 不存在,SQLite 会自动创建它。你会看到提示符变成 sqlite>,说明已进入交互模式。输入 .databases 确认数据库文件已经创建成功。

2)建表

先创建作者表,再创建图书表,两张表通过作者 ID 关联。

在 sqlite> 提示符下依次输入:
CREATE TABLE authors (id INTEGER PRIMARY KEY, name TEXT NOT NULL, country TEXT);
CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT NOT NULL, year INTEGER, author_id INTEGER, FOREIGN KEY (author_id) REFERENCES authors(id));
输入 .tables 可以看到两张表都已创建。输入 .schema 可以查看两张表的完整建表语句。

3)插入数据

先插入作者数据:
INSERT INTO authors (name, country) VALUES ('刘慈欣', '中国');
INSERT INTO authors (name, country) VALUES ('J.K. Rowling', '英国');
INSERT INTO authors (name, country) VALUES ('村上春', '日本');

再插入图书数据:
INSERT INTO books (title, year, author_id) VALUES ('三体', 2008, 1);
INSERT INTO books (title, year, author_id) VALUES ('黑暗森林', 2008, 1);
INSERT INTO books (title, year, author_id) VALUES ('Harry Potter', 1997, 2);
INSERT INTO books (title, year, author_id) VALUES ('挪威的森林', 1987, 3);

4)查询数据

先用 .mode column.headers on 把输出格式调好看些。然后查所有图书:
SELECT * FROM books;

条件查询,比如查某位作者的书:
SELECT title, year FROM books WHERE author_id = 1;

5)修改和删除

更新数据,比如把《三体》的出版年份改一下:
UPDATE books SET year = 2006 WHERE title = '三体';
删除数据,比如删除某条图书记录:
DELETE FROM books WHERE title = '挪威的森林';
注意 DELETE 后最好用 WHERE 限定条件,否则会删除整张表的数据。

6)导出和退出

用 .output 把查询结果保存到文件:.output books.txt,然后执行 SELECT * FROM books;,结果会写入 books.txt 而不是显示在屏幕上。不想保存了,输入 .output stdout 恢复屏幕输出。


.dump > books_backup.sql 导出整个数据库的 SQL 备份(保存位置就在 C:\Users\Administrator>)。最后输入 .exit 退出。


把上面所有的 SQL 语句走一遍,你就完成了 sqlite3 从建库到备份的完整流程。以后遇到任何需要本地存储的小型数据,都可以用同样的步骤快速搭建起来。

常见使用问题

1)输入 sqlite3 提示"不是内部或外部命令"或"command not found"

环境变量没有配置对,检查 sqlite3.exe 所在的文件夹路径是否已添加到系统的 Path 变量中,添加后重新打开命令行窗口。

2)SQLite 的数据库文件在其他电脑上打不开

SQLite 的数据库文件是跨平台的,在 Windows 上创建的 .db 文件可以直接复制到 macOS 或 Linux 上使用,反之亦然。打不开通常是因为文件损坏了(比如在写入过程中强行断电),可以用 .recover 命令尝试恢复:sqlite3 damaged.db ".recover" | sqlite3 recovered.db。

总结

SQLite 是一个零配置、单文件的嵌入式数据库引擎,和 MySQL、PostgreSQL 这种需要专门部署管理的数据库服务相比,它最大的优势就是简单,下载解压就能用、一个 .db 文件就是一整个数据库、不需要网络配置和用户管理。

对于个人工具、移动应用、嵌入式设备、桌面软件以及本地数据分析场景来说,SQLite 是效率和便捷性兼顾的选择。安装 SQLite 其实不是传统意义上的"安装",解压命令行工具配置好环境变量就能开始写 SQL。从打开数据库到创建表到写查询,整个过程不需要退出命令行,也不需要启动任何后台服务。