SQLite 新手完全使用指南(适用于 Windows / macOS / Linux)


一、什么是 SQLite?SQLite 是一个轻量级、无服务器、文件型 数据库引擎。

  • 所有数据存储在 一个 .db 文件 中
  • 无需安装数据库服务(如 MySQL)
  • 支持标准 SQL 语法
  • 适合:桌面应用、嵌入式系统、原型开发、学习 SQL

二、安装 SQLite(命令行工具)1. 检查是否已安装

bash

sqlite3 --version

如果提示版本号(如 3.45.0),说明已安装。


2. 安装方式

系统
安装命令
macOS
已预装,或用 Homebrew: brew install sqlite
Ubuntu/Debian
sudo apt update && sudo apt install sqlite3
CentOS/RHEL
sudo yum install sqlite 或 sudo dnf install sqlite
Windows
下载 https://www.sqlite.org/download.html → sqlite-tools-win32-x86-*.zip → 解压后将 sqlite3.exe 加入 PATH

三、进入与退出 SQLite 命令行进入 SQLite 命令行

bash

# 1. 打开一个现有数据库文件
sqlite3 mydatabase.db

# 2. 创建并打开一个新数据库(文件不存在会自动创建)
sqlite3 demo.db

# 3. 进入内存数据库(临时,关闭即消失)
sqlite3 :memory:
进入后提示符变为:sqlite>

退出 SQLite 命令行

bash

sqlite> .quit

或

bash

sqlite> .exit

快捷键:

  • Linux/macOS: Ctrl + D
  • Windows: Ctrl + Z + Enter(或 .quit)

四、常用元命令(以 . 开头)

命令
功能
.help
显示所有元命令帮助
.quit / .exit
退出
.databases
查看当前打开的数据库
.tables
列出所有表
.schema
查看所有表的创建语句
.schema 表名
查看指定表的结构
.headers on
显示列标题
.mode column
表格格式显示(推荐)
.mode list
列表格式(默认)
.output 文件名
将输出保存到文件
.read 文件名.sql
执行 SQL 文件

推荐设置(每次进入都可运行):

bash

sqlite> .headers on
sqlite> .mode column

五、数据库基本操作1. 创建数据库(自动完成)

bash

sqlite3 myapp.db

→ 文件 myapp.db 自动创建在当前目录。


2. 查看当前数据库路径

bash

sqlite> .databases

输出示例:

seq  name             file
---  ---------------  -----------------------
0    main             /path/to/myapp.db

六、表操作(CRUD)示例:创建一个 users 表

sql

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    age INTEGER,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

1. 插入数据(INSERT)

sql

INSERT INTO users (name, email, age) VALUES ('张三', 'zhangsan@example.com', 25);
INSERT INTO users (name, email, age) VALUES ('李四', 'lisi@example.com', 30);

批量插入:

sql

INSERT INTO users (name, email, age) VALUES
('王五', 'wangwu@example.com', 22),
('赵六', 'zhaoliu@example.com', 28);

2. 查询数据(SELECT)

sql

-- 查看所有数据
SELECT * FROM users;

-- 带条件
SELECT name, age FROM users WHERE age > 25;

-- 排序
SELECT * FROM users ORDER BY age DESC;

-- 分页
SELECT * FROM users LIMIT 2 OFFSET 1;

3. 更新数据(UPDATE)

sql

UPDATE users SET age = 26 WHERE name = '张三';

4. 删除数据(DELETE)

sql

-- 删除指定记录
DELETE FROM users WHERE email = 'lisi@example.com';

-- 删除所有数据(保留表结构)
DELETE FROM users;

5. 删除表(DROP)

sql

DROP TABLE users;

七、查看表结构与数据

bash

# 查看所有表
sqlite> .tables

# 查看表结构
sqlite> .schema users
-- 或
sqlite> PRAGMA table_info(users);

八、导入与导出数据1. 导出为 SQL 文件

bash

# 在终端(非 sqlite> 提示符下)
sqlite3 myapp.db .dump > backup.sql

2. 从 SQL 文件恢复

bash

sqlite3 newdb.db < backup.sql

3. 导入 CSV 文件

sql

-- 开启 CSV 模式
.mode csv
.import data.csv users
注意:表必须已存在,且列顺序一致

九、常用 SQL 语句速查

操作
SQL 语句
创建表
CREATE TABLE …
查看数据
SELECT * FROM 表名;
筛选
WHERE 条件
排序
ORDER BY 字段 DESC/ASC
分页
LIMIT 数量 OFFSET 偏移
统计
COUNT(*)
去重
SELECT DISTINCT 字段
模糊搜索
LIKE ‘%关键词%’
聚合
GROUP BY, HAVING

十、实战示例:完整流程

bash

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

# 2. 设置显示格式
.headers on
.mode column

# 3. 创建文章表
CREATE TABLE posts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

# 4. 插入数据
INSERT INTO posts (title, content) VALUES ('第一篇博客', '欢迎使用 SQLite!');

# 5. 查询
SELECT * FROM posts;

# 6. 退出
.quit

十一、高级技巧1. 事务(Transaction)

sql

BEGIN TRANSACTION;
INSERT INTO users ...;
UPDATE users ...;
COMMIT;  -- 或 ROLLBACK; 回滚

2. 索引(提升查询速度)

sql

CREATE INDEX idx_email ON users(email);

3. 外键(需手动开启)

sql

PRAGMA foreign_keys = ON;

CREATE TABLE orders (
    id INTEGER PRIMARY KEY,
    user_id INTEGER,
    FOREIGN KEY(user_id) REFERENCES users(id)
);

十二、常见问题(FAQ)

问题
解决方案
unable to open database file
检查路径、权限、目录是否存在
中文乱码
确保终端支持 UTF-8,数据库默认支持
.quit 不生效
用 .exit 或 Ctrl+D
表不存在
先 CREATE TABLE 或检查 .tables
想清空数据库
删除 .db 文件重新创建

十三、推荐学习资源


总结:SQLite 快速上手口诀

text

sqlite3 xxx.db         → 进入
.headers on + .mode column → 美化显示
CREATE TABLE ...       → 建表
INSERT INTO ...        → 插入
SELECT * FROM ...      → 查询
.quit                  → 退出

恭喜!你已掌握 SQLite 核心操作!
现在你可以轻松用于 Yii2、Python、移动开发、数据分析等场景。

提示:SQLite 适合 中小型项目,高并发场景建议使用 MySQL/PostgreSQL。

如需 Yii2 + SQLite 完整项目模板,可回复 yii2 sqlite demo 获取。