SQLite 是一种轻量级、嵌入式的关系型数据库管理系统,它无需独立服务器进程,直接通过文件存储数据,具有零配置、高性能、跨平台等优点,广泛应用于移动应用、桌面软件、嵌入式系统和小型Web项目中,掌握 SQLite 数据库命令是高效操作数据的基础,以下从核心命令类型、实用技巧及常见场景进行详细说明。

数据库与表操作命令
-
数据库创建与连接
SQLite 通过命令行工具sqlite3进入交互模式,首次执行.open database_name.db会自动创建数据库(若不存在)。.open mydb.db -- 打开或创建 mydb.db 数据库
使用
.databases可查看当前连接的所有数据库。 -
表的基本操作
- 创建表:通过
CREATE TABLE定义表结构,支持数据类型(如INTEGER、TEXT、REAL)和约束(PRIMARY KEY、NOT NULL、UNIQUE)。CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, email TEXT UNIQUE );
- 修改表:使用
ALTER TABLE可重命名表(RENAME TO new_name)或添加列(ADD COLUMN column_name type)。 - 删除表:
DROP TABLE users会删除表及其所有数据,操作不可逆,需谨慎使用。
- 创建表:通过
数据操作命令(CRUD)
-
插入数据(INSERT)
单条数据插入:
(图片来源网络,侵删)INSERT INTO users (name, age, email) VALUES ('Alice', 25, 'alice@example.com');批量插入可通过事务(
BEGIN; ...; COMMIT;)提升效率。 -
查询数据(SELECT)
基础查询:SELECT * FROM users WHERE age > 20 ORDER BY name DESC LIMIT 10;
支持聚合函数(
COUNT()、SUM())、分组(GROUP BY)和连接查询(JOIN)。 -
更新数据(UPDATE)
(图片来源网络,侵删)UPDATE users SET age = 26 WHERE name = 'Alice';
注意:务必添加
WHERE条件,否则会更新全表数据。 -
删除数据(DELETE)
DELETE FROM users WHERE age < 18;
同样需谨慎使用
WHERE,避免误删数据。
高级命令与实用功能
-
索引优化
为高频查询列创建索引可提升速度:CREATE INDEX idx_email ON users(email);
使用
DROP INDEX idx_email删除索引。 -
事务管理
事务确保数据一致性,示例:BEGIN TRANSACTION; INSERT INTO users VALUES (2, 'Bob', 30, 'bob@example.com'); COMMIT; -- 提交事务,或 ROLLBACK 回滚
-
数据导出与导入
- 导出:
.output file.txt+.dump导出数据库结构及数据。 - 导入:
.read file.txt执行 SQL 脚本文件。
- 导出:
-
元数据查询
- 查看表结构:
.schema users - 查看所有表:
.tables
- 查看表结构:
SQLite 数据类型与约束
SQLite 采用动态类型系统,但仍推荐显式声明类型以提高可读性,常见约束如下:
| 约束类型 | 说明 | 示例 |
|---|---|---|
PRIMARY KEY |
主键,唯一标识记录 | id INTEGER PRIMARY KEY |
NOT NULL |
字段不能为空 | name TEXT NOT NULL |
UNIQUE |
字段值必须唯一 | email TEXT UNIQUE |
DEFAULT |
默认值 | age INTEGER DEFAULT 18 |
CHECK |
条件约束 | CHECK (age > 0) |
常见应用场景
- 移动应用:如 Android/iOS 开发中存储本地数据。
- 嵌入式系统:设备配置日志记录。
- 小型Web项目:替代 MySQL 作为轻量级后端数据库。
相关问答 FAQs
Q1: SQLite 如何处理并发访问?
A1: SQLite 采用文件级锁,支持多读但单写,高并发场景下,可通过 WAL(Write-Ahead Logging)模式提升并发性能,命令为 PRAGMA journal_mode=WAL;,但需注意,大量写操作仍可能导致性能瓶颈。
Q2: 如何优化 SQLite 查询速度?
A2: 优化方法包括:① 为常用查询字段创建索引;② 避免全表扫描(如 SELECT *);③ 使用 EXPLAIN QUERY PLAN 分析查询计划;④ 定期执行 VACUUM 清理碎片化空间;⑤ 合理设计表结构,减少冗余数据。
