SQLite的基本操作

1. SQLite 简介

核心特性

  • 零配置 :无需安装服务端,直接通过库文件操作数据库文件(如 .db.sqlite)。
  • 轻量级:整个数据库引擎封装在一个动态库中,体积小,易于集成到各类应用(嵌入式设备、桌面程序、Web 后端等)。
  • 跨平台:支持 Windows、Linux、macOS 等多平台,数据库文件可在不同平台间迁移。
  • 事务支持:遵循 ACID(原子性、一致性、隔离性、持久性)原则,保证数据操作的可靠性。

适用场景

  • 小型应用或原型开发(无需复杂数据库部署)。
  • 嵌入式设备(如 IoT 设备、智能硬件)。
  • 本地数据存储(如桌面软件的配置、历史记录)。
  • 测试环境(快速搭建数据库,无需依赖外部服务)

2. 数据类型 (Data Types)

SQLite 采用动态类型系统(Type Affinity),列的 "类型" 更像是 "推荐存储类型",实际存储值的类型由值本身决定,但创建表时定义类型仍有意义(明确数据语义、辅助验证)。常用类型及特性

3. 基本 SQL 操作 (CRUD)

a. 创建表 (CREATE TABLE)

  • 约束说明
    • PRIMARY KEY:主键,唯一标识一行数据,通常配合 AUTOINCREMENT(SQLite 中 INTEGER PRIMARY KEY 会自动自增,若需严格自增可显式加 AUTOINCREMENT,但会有性能开销)。
    • NOT NULL:列值不允许为 NULL
    • UNIQUE:列值在表中必须唯一。
    • CHECK:自定义检查约束(如 age INTEGER CHECK(age > 0) 确保年龄为正)。
    • DEFAULT:列的默认值(如 created_at TEXT DEFAULT CURRENT_TIMESTAMP 记录创建时间)。

b. 插入数据 (INSERT)

  • 多行插入:SQLite 支持一次插入多条记录
  • 插入时忽略冲突 :若表有唯一约束,使用 INSERT OR IGNORE 可忽略冲突记录,继续插入后续数据。

c. 查询数据 (SELECT)

  • 条件组合(AND/OR)
  • 模糊查询(LIKE)
    • % 匹配任意长度字符(包括 0 个)。
    • _ 匹配单个字符。

d. 更新数据 (UPDATE)

多表关联更新 :SQLite 支持在 UPDATE 中关联其他表(需用子查询或 JOIN 逻辑)

限制更新行数 :结合 ORDER BYLIMIT,控制更新的行数

e. 删除数据 (DELETE)

  • 多表关联删除:类似更新,可通过子查询关联其他表进行删除。
  • 删除所有数据(保留表结构)TRUNCATE TABLE 在 SQLite 中不直接支持,可通过 DELETE FROM table_name;DELETE FROM table_name WHERE 1; 实现(若表有自增主键,自增计数不会重置;若需重置,需删除并重建表)。
相关推荐
码农阿豪1 小时前
国产化替代新篇章:金仓数据库如何实现MongoDB平滑迁移
数据库·mongodb
彦偈1 小时前
Centos7 oracle 11G 搭建ADG
数据库·oracle
言德斐8 小时前
SQL性能优化的思路及策略
数据库·sql·性能优化
码界奇点8 小时前
Django视图从基础到高级的全面解析
数据库·django·sqlite·web·python3.11
Allan_20258 小时前
数据库学习
数据库·学习
fen_fen8 小时前
人大金仓数据库kingbase8创建表示例
数据库·oracle
一勺菠萝丶8 小时前
「您的连接不是私密连接」详解:为什么 HTTPS 证书会报错,以及如何正确配置子域名证书
数据库·网络协议·https
²º²²এ松9 小时前
蓝牙低功耗(BLE)通信的中心设备/外围设备(连接角色)、主机/从机(时序角色)、客户端/服务器(数据交互角色)的理解
运维·服务器·数据库
百锦再9 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
数据库知识分享者小北10 小时前
云栖重磅|瑶池数据库:从云原生数据底座向“AI就绪”的多模态数据底座演进
数据库·人工智能·云原生