SQLite安装和使用指南

目录

简介

SQLite是一个C语言编写的、轻量级的、自给自足的、高可靠性的、全功能的SQL数据库引擎。它是世界上使用最广泛的数据库引擎之一。SQLite的源代码不受版权限制,你可以将其用于任何目的,包括商业用途。

SQLite的特点

  • 零配置 - 无需安装和管理配置
  • 单一文件 - 整个数据库存储在一个文件中
  • 事务性 - 满足ACID特性
  • 高可靠性 - 广泛的测试覆盖
  • 跨平台 - 支持所有主流操作系统

安装指南

Windows平台安装

  1. 下载预编译二进制文件

  2. 配置环境变量

    • 右键”此电脑” -> 属性 -> 高级系统设置 -> 环境变量
    • 在系统变量Path中添加SQLite解压目录
  3. 验证安装

    1
    sqlite3 --version

Linux平台安装

  1. Debian/Ubuntu系统:

    1
    2
    sudo apt update
    sudo apt install sqlite3
  2. CentOS/RHEL系统:

    1
    sudo yum install sqlite
  3. 验证安装:

    1
    sqlite3 --version

macOS平台安装

  1. 使用Homebrew安装:

    1
    brew install sqlite
  2. 验证安装:

    1
    sqlite3 --version

基本使用

创建数据库

  1. 创建新数据库

    1
    sqlite3 test.db
  2. 常用命令

    1
    2
    3
    4
    .help    -- 显示帮助信息
    .tables -- 显示所有表
    .schema -- 显示表结构
    .quit -- 退出

表操作

  1. 创建表

    1
    2
    3
    4
    5
    6
    CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    age INTEGER
    );
  2. 修改表

    1
    2
    3
    4
    5
    -- 添加列
    ALTER TABLE users ADD COLUMN phone TEXT;

    -- 重命名表
    ALTER TABLE users RENAME TO new_users;
  3. 删除表

    1
    DROP TABLE users;

数据操作

  1. 插入数据

    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);
  2. 查询数据

    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;
  3. 更新数据

    1
    UPDATE users SET age = 26 WHERE name = '张三';
  4. 删除数据

    1
    DELETE FROM users WHERE age < 25;

进阶使用

索引

  1. 创建索引

    1
    2
    3
    4
    5
    -- 创建普通索引
    CREATE INDEX idx_users_name ON users(name);

    -- 创建唯一索引
    CREATE UNIQUE INDEX idx_users_email ON users(email);
  2. 删除索引

    1
    DROP INDEX idx_users_name;

事务

1
2
3
4
5
6
7
8
9
10
11
12
-- 开始事务
BEGIN TRANSACTION;

-- 执行操作
INSERT INTO users (name, email, age) VALUES ('赵六', 'zhaoliu@example.com', 35);
UPDATE users SET age = 31 WHERE name = '李四';

-- 提交事务
COMMIT;

-- 回滚事务
-- ROLLBACK;

视图

1
2
3
4
5
6
7
8
9
-- 创建视图
CREATE VIEW adult_users AS
SELECT * FROM users WHERE age >= 18;

-- 使用视图
SELECT * FROM adult_users;

-- 删除视图
DROP VIEW adult_users;

最佳实践

  1. 数据库设计

    • 合理使用主键和外键
    • 适当的字段类型选择
    • 规范的命名约定
  2. 性能优化

    • 合理使用索引
    • 避免使用SELECT *
    • 使用准备语句(Prepared Statements)
    • 定期VACUUM数据库
  3. 安全性

    • 使用参数化查询防止SQL注入
    • 合理设置文件权限
    • 定期备份数据
  4. 并发处理

    • 合理使用事务
    • 注意锁的使用
    • 避免长事务
  5. 维护建议

    • 定期更新SQLite版本
    • 监控数据库大小
    • 保持良好的文档记录

常见问题解决

  1. 数据库锁定

    1
    2
    -- 查看锁定状态
    PRAGMA busy_timeout = 5000; -- 设置超时时间
  2. 数据库优化

    1
    2
    VACUUM;  -- 整理数据库文件
    ANALYZE; -- 收集统计信息
  3. 数据库备份

    1
    sqlite3 test.db ".backup 'backup.db'"

参考资源