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
|
三、进入与退出 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 文件重新创建
|
十三、推荐学习资源
- 官方文档:https://www.sqlite.org
- SQL 练习:https://sqlzoo.net
- SQLite 浏览器(GUI):DB Browser for SQLite(免费)
总结: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 获取。