当前位置: 首页 > news >正文

WHAT - SQLite 数据库

文章目录

  • 一、SQLite 是什么?
  • 二、在 Node.js 项目中使用 SQLite(示例)
    • 1. 安装依赖
    • 2. 初始化数据库
    • 3. 执行 CRUD 操作
  • 三、SQLite 的适用场景
  • 四、工具与管理
  • 五、SQLite vs JSON vs MySQL 对比
  • 六、进阶

如果你希望在项目中用一个“轻量但靠谱的数据库”,那 SQLite 是非常合适的选择

它介于“JSON 文件”和“大型数据库”之间,非常适合中小项目,尤其是单机应用、Electron、Node.js 后端、小型 Web 服务等。


一、SQLite 是什么?

SQLite 是一个嵌入式关系型数据库,它不像 MySQL / Postgres 那样需要部署服务,它就是一个单一的 .db 文件。

  • 只需一个文件,比如 database.sqlite
  • 语法兼容标准 SQL
  • 无需安装服务,开箱即用
  • 支持事务、索引、JOIN 等
  • 可与任何后端框架集成(Node、Python、Go…)

二、在 Node.js 项目中使用 SQLite(示例)

我们以 Node + TypeScript 为例

1. 安装依赖

使用 better-sqlite3(同步、简单、非常快):

npm install better-sqlite3
# 或
yarn add better-sqlite3

2. 初始化数据库

创建一个 db.jsdb.ts 文件:

import Database from 'better-sqlite3';// 创建或连接到数据库文件(会自动创建)
const db = new Database('myapp.db');// 创建一个表(如果不存在)
db.prepare(`CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,age INTEGER)
`).run();export default db;

这段代码会在项目目录生成 myapp.db 文件。


3. 执行 CRUD 操作

import db from './db';// 插入
const insert = db.prepare('INSERT INTO users (name, age) VALUES (?, ?)');
insert.run('Tom', 25);
insert.run('Alice', 30);// 查询
const allUsers = db.prepare('SELECT * FROM users').all();
console.log(allUsers);// 查询单个
const getUser = db.prepare('SELECT * FROM users WHERE id = ?').get(1);
console.log(getUser);// 更新
const update = db.prepare('UPDATE users SET age = ? WHERE id = ?');
update.run(26, 1);// 删除
const del = db.prepare('DELETE FROM users WHERE id = ?');
del.run(2);

非常接近标准 SQL,语法简单明了。


三、SQLite 的适用场景

场景类型SQLite 适合吗说明
开发 / 原型 / Demo✔️免安装、快速上手
小型 Web 后端✔️适合个人项目、管理后台
桌面端 / Electron 应用✔️非常常见(例如 VS Code 插件的数据也用 SQLite)
边缘计算 / Serverless✔️文件式存储,部署轻量
大型高并发 Web 系统不适合高并发写入、分布式场景

四、工具与管理

  • 图形化管理工具(方便直接查看和编辑数据库)

    • DB Browser for SQLite(免费、开源)
    • TablePlus / Beekeeper Studio / DBeaver
  • SQLite 自带 CLI 工具:

    sqlite3 myapp.db
    .tables
    SELECT * FROM users;
    

五、SQLite vs JSON vs MySQL 对比

特性JSON 文件SQLiteMySQL/PostgreSQL
安装难度无(内嵌)需要安装服务
存储规模中等
并发一般(读多写少场景OK)
查询能力支持 SQL支持 SQL(复杂功能更多)
索引 / JOIN / 事务
适用项目规模配置 / Demo小中型中大型

所以 SQLite 可以完美替代 JSON 文件存储的场景,还能提供更多可靠性和查询能力。


六、进阶

  • 使用 ORM(如 Prisma / Drizzle / Sequelize)+ SQLite
    👉 这样就不用手写 SQL 了,适合 React + Node 全栈项目

    npm install prisma --save-dev
    npx prisma init --datasource-provider sqlite
    
  • Prisma schema 示例:

    model User {id    Int     @id @default(autoincrement())name  Stringage   Int?
    }
    
  • 生成和使用:

    npx prisma migrate dev --name init
    npx prisma generate
    

这样你就可以在代码中直接用 TypeScript 调用数据库了:

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()const user = await prisma.user.create({data: { name: 'Tom', age: 25 }
})const users = await prisma.user.findMany()
console.log(users)

具体可以阅读 HOW - 浅试前端的 Typescript ORM(含 Drizzle、Turso SQLite)


总结一句话:

如果你之前是用 JSON 文件模拟数据库,现在升级到 SQLite 是最自然的进阶。
它简单、稳定、支持 SQL,能支撑中小项目的真实业务。

http://www.dtcms.com/a/478027.html

相关文章:

  • 网站开发 工程师 类型电商网站文档
  • 框架--Swagger
  • 网站设计的基本步骤有意思的网站
  • Ethernaut Level 10: Re-entrancy - 经典重入攻击详解
  • 维星AI GEO优化:AI搜索引擎时代,企业如何抢占流量C位?
  • 京东pc网站用什么做的php编程语言
  • STM32 单片机ADC 使用内部电压基准
  • 从美团到朴朴、我店与远方好物:本地生活的四种演化路径与未来趋势
  • U盘白名单管控工具(可以添加U盘ID无法实现白名单效果)
  • 【仿真测试】基于FPGA的完整DQPSK通信链路实现,含频偏锁定,帧同步,定时点,Viterbi译码,信道,误码统计
  • 网站开发推荐资料柯城区住房和城乡建设局网站
  • 算法沉淀第一天(Triple Removal)
  • PGLRNet论文笔记
  • 如何利用docker部署springboot应用
  • 前端学习3:学习时间:40分钟
  • 网站建设主页文档互联网网站运营推广
  • 七台河网站网站建设做网站有什么意义
  • 【完整源码+数据集+部署教程】种子检测系统源码和数据集:改进yolo11-swintransformer
  • python进阶_Day7
  • DDD架构——实体、聚合、值对象
  • 一次搞懂!我用ChatGPT做学术文献综述的完整实操流程
  • 文献解读-病理区域重要性标记+细胞类型形态相互作用可解释性分析
  • Java Redis “缓存设计”面试清单(含超通俗生活案例与深度理解)
  • 网站建设 项目要求成都网站设计建设推荐
  • 一件代发应该在哪个网站上做怎么用域名建网站
  • Ubuntu 20.04 安装Aerial Gym Simulator - 基于 Gym 的无人机强化学习仿真器
  • Java HashSet 的实现原理
  • Happy DOM曝CVSS 9.4严重RCE漏洞,PoC已公开(CVE-2025-61927)
  • 关于网站建设的句子微营销app
  • 静态网站托管平台wordpress论坛源码