SQLite安装和使用指南
SQLite安装和使用指南
目录
简介
SQLite是一个C语言编写的、轻量级的、自给自足的、高可靠性的、全功能的SQL数据库引擎。它是世界上使用最广泛的数据库引擎之一。SQLite的源代码不受版权限制,你可以将其用于任何目的,包括商业用途。
SQLite的特点
- 零配置 - 无需安装和管理配置
- 单一文件 - 整个数据库存储在一个文件中
- 事务性 - 满足ACID特性
- 高可靠性 - 广泛的测试覆盖
- 跨平台 - 支持所有主流操作系统
安装指南
Windows平台安装
下载预编译二进制文件
- 访问SQLite下载页面:https://www.sqlite.org/download.html
- 下载
sqlite-tools-win32-x86-*.zip
文件 - 解压文件到指定目录(如:
C:\sqlite
)
配置环境变量
- 右键”此电脑” -> 属性 -> 高级系统设置 -> 环境变量
- 在系统变量Path中添加SQLite解压目录
验证安装
1
sqlite3 --version
Linux平台安装
Debian/Ubuntu系统:
1
2sudo apt update
sudo apt install sqlite3CentOS/RHEL系统:
1
sudo yum install sqlite
验证安装:
1
sqlite3 --version
macOS平台安装
使用Homebrew安装:
1
brew install sqlite
验证安装:
1
sqlite3 --version
基本使用
创建数据库
创建新数据库
1
sqlite3 test.db
常用命令
1
2
3
4.help -- 显示帮助信息
.tables -- 显示所有表
.schema -- 显示表结构
.quit -- 退出
表操作
创建表
1
2
3
4
5
6CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
age INTEGER
);修改表
1
2
3
4
5-- 添加列
ALTER TABLE users ADD COLUMN phone TEXT;
-- 重命名表
ALTER TABLE users RENAME TO new_users;删除表
1
DROP TABLE users;
数据操作
插入数据
1
2
3
4
5
6
7-- 单行插入
INSERT INTO users (name, email, age) VALUES ('张三', 'zhangsan@example.com', 25);
-- 多行插入
INSERT INTO users (name, email, age) VALUES
('李四', 'lisi@example.com', 30),
('王五', 'wangwu@example.com', 28);查询数据
1
2
3
4
5
6
7
8
9
10
11-- 基本查询
SELECT * FROM users;
-- 条件查询
SELECT name, age FROM users WHERE age > 25;
-- 排序
SELECT * FROM users ORDER BY age DESC;
-- 分组
SELECT age, COUNT(*) as count FROM users GROUP BY age;更新数据
1
UPDATE users SET age = 26 WHERE name = '张三';
删除数据
1
DELETE FROM users WHERE age < 25;
进阶使用
索引
创建索引
1
2
3
4
5-- 创建普通索引
CREATE INDEX idx_users_name ON users(name);
-- 创建唯一索引
CREATE UNIQUE INDEX idx_users_email ON users(email);删除索引
1
DROP INDEX idx_users_name;
事务
1 | -- 开始事务 |
视图
1 | -- 创建视图 |
最佳实践
数据库设计
- 合理使用主键和外键
- 适当的字段类型选择
- 规范的命名约定
性能优化
- 合理使用索引
- 避免使用SELECT *
- 使用准备语句(Prepared Statements)
- 定期VACUUM数据库
安全性
- 使用参数化查询防止SQL注入
- 合理设置文件权限
- 定期备份数据
并发处理
- 合理使用事务
- 注意锁的使用
- 避免长事务
维护建议
- 定期更新SQLite版本
- 监控数据库大小
- 保持良好的文档记录
常见问题解决
数据库锁定
1
2-- 查看锁定状态
PRAGMA busy_timeout = 5000; -- 设置超时时间数据库优化
1
2VACUUM; -- 整理数据库文件
ANALYZE; -- 收集统计信息数据库备份
1
sqlite3 test.db ".backup 'backup.db'"
参考资源
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 诒森的博客!
评论