菜鸟科技网

SQLite数据库命令有哪些核心用法?

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

SQLite数据库命令有哪些核心用法?-图1
(图片来源网络,侵删)

数据库与表操作命令

  1. 数据库创建与连接
    SQLite 通过命令行工具 sqlite3 进入交互模式,首次执行 .open database_name.db 会自动创建数据库(若不存在)。

    .open mydb.db  -- 打开或创建 mydb.db 数据库

    使用 .databases 可查看当前连接的所有数据库。

  2. 表的基本操作

    • 创建表:通过 CREATE TABLE 定义表结构,支持数据类型(如 INTEGERTEXTREAL)和约束(PRIMARY KEYNOT NULLUNIQUE)。
      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)

  1. 插入数据(INSERT)
    单条数据插入:

    SQLite数据库命令有哪些核心用法?-图2
    (图片来源网络,侵删)
    INSERT INTO users (name, age, email) VALUES ('Alice', 25, 'alice@example.com');

    批量插入可通过事务(BEGIN; ...; COMMIT;)提升效率。

  2. 查询数据(SELECT)
    基础查询:

    SELECT * FROM users WHERE age > 20 ORDER BY name DESC LIMIT 10;

    支持聚合函数(COUNT()SUM())、分组(GROUP BY)和连接查询(JOIN)。

  3. 更新数据(UPDATE)

    SQLite数据库命令有哪些核心用法?-图3
    (图片来源网络,侵删)
    UPDATE users SET age = 26 WHERE name = 'Alice';

    注意:务必添加 WHERE 条件,否则会更新全表数据。

  4. 删除数据(DELETE)

    DELETE FROM users WHERE age < 18;

    同样需谨慎使用 WHERE,避免误删数据。

高级命令与实用功能

  1. 索引优化
    为高频查询列创建索引可提升速度:

    CREATE INDEX idx_email ON users(email);

    使用 DROP INDEX idx_email 删除索引。

  2. 事务管理
    事务确保数据一致性,示例:

    BEGIN TRANSACTION;
    INSERT INTO users VALUES (2, 'Bob', 30, 'bob@example.com');
    COMMIT;  -- 提交事务,或 ROLLBACK 回滚
  3. 数据导出与导入

    • 导出:.output file.txt + .dump 导出数据库结构及数据。
    • 导入:.read file.txt 执行 SQL 脚本文件。
  4. 元数据查询

    • 查看表结构:.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 清理碎片化空间;⑤ 合理设计表结构,减少冗余数据。

分享:
扫描分享到社交APP
上一篇
下一篇