关于SQLite - 世界上装机量最多的数据库

news/2025/10/26 23:53:29/文章来源:https://www.cnblogs.com/xupeixuan/p/19167623

关于SQLite - 世界上装机量最多的数据库?
    使用C语言开发,使得它小巧精致而高效,·直接采用偏底层的语言,使用文件的逻辑,实现SQL数据库的逻辑;
    使用方:包括但不限于 Python、Java、C# 等;
    无服务器的,零配置的,真的轻量;
    遵守ACID的关系型数据库管理系统,让了解Mysql等数据库的人极易上手;
    SQLite 是一个自包含的程序如果你使用的是 Linux 或者 MacOS,那么 SQLite 很可能已经预装了,真的开箱即用;
它虽然支持了增删改查以及事务等特性,但是它为什么是在嵌入式方向使用,而不是大范围使用呢,主要还是不面向复杂的处理逻辑、大数量的存储与查询,所以还是要将对的东西用在对的方面。

一、SQLite 数据库概述

1、SQLite 是一个 C 语言库,它实现了一个小型、快速、独立、高可靠性、功能齐全、开源的关系型嵌入式 SQL 数据库引擎。SQLite 是世界上使用最广泛的数据库引擎。SQLite 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。
2、SQLite 文件格式是稳定的、跨平台的和向后兼容的,开发人员承诺在 2050 年之前保持这种状态。SQLite 数据库文件通常用作容器,在系统之间传输丰富的内容,并用作数据的长期存档格式 。有超过 1 万亿 个 SQLite 数据库正在积极使用。
3、SQLite 是一个嵌入式 SQL 数据库引擎。与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程。SQLite 直接读取和写入普通磁盘文件。具有多个表、索引、触发器和视图的完整 SQL 数据库包含在单个磁盘文件中。
4、SQLite 遵循 SQL 标准的大部分基本语法和功能,如数据定义语言(DDL)、数据操纵语言(DML)、数据查询语言(DQL)等,所以大多数场景下使用跟其他数据库语法基本一致,比如 Mysql。
5、某些极端情况下可能会导致 DB 文件损坏,比如断电、文件系统异常、硬件问题等,解决办法是:定期备份 -> 备份恢复。

优势 & 特性
    轻量级:SQLite 不需要单独的服务器进程或系统资源,数据库存储在一个单一的磁盘文件中,这使得它非常适合于小型应用和移动设备。
    无需配置:SQLite 不需要复杂的安装和配置过程,可以很容易地集成到各种应用程序中。比如 Java 只需要在 pom.xml 引入依赖即可使用。
    嵌入式:SQLite 是一个嵌入式的库,不作为一个独立的服务运行,而是直接嵌入到应用程序中。
    事务性:支持 ACID 事务,确保数据的一致性和完整性。
    零配置:无需运行数据库服务器或进行复杂的配置,SQLite 数据库文件可以被多个进程共享访问。
    适合嵌入式系统:由于其轻量级和简单性,SQLite 经常用于嵌入式系统和移动应用。

应用场景
    移动应用:移动应用通常需要一个轻量级的数据库来存储本地数据,SQLite 因其小体积和无需服务器的特性非常适合
    桌面应用:需要本地数据库存储的桌面应用
    嵌入式系统:嵌入式系统和物联网设备
    独立应用:不需要网络数据库连接的独立应用
    轻量级 Web 应用:不需要复杂事务处理或高并发访问的应用
    边缘计算:边缘设备上运行 SQLite,仅将重要更改同步到云端,可以有效降低网络带宽的使用,并提高数据处理的实时性

不适合场景
    高并发应用:SQLite 不适合需要高并发写入操作的应用场景
    分布式系统:SQLite 是一个文件基的数据库,不适合分布式系统或需要跨多个服务器共享数据库的场景
    复杂的事务处理:SQLite 处理复杂的事务业务相对其他数据库较弱
    需要数据库高级功能:如存储过程等,不支持
    多用户实时协作:类似并发操作

二、客户端工具

Navicat Premium(推荐)

1、Navicat Premium 默认支持对 SQLite 的连接,因为 SQLite 不需要安装,一个文件就是一个数据库,所以操作非常简单,存在 .db 文件时直接连接即可,不存在时,直接手动或者自动创建文件。

2、sqlite-tools 命令行工具

  • 官网下载地址:SQLite Download Page。
  • 这是官网用于管理 SQLite 数据库文件的一组命令行工具, 包括 (1) sqlite3.exe 命令行 shell,(2) sqldiff.exe, (3) sqlite3_analyzer.exe,以及 (4) sqlite3_rsync.exe 64 位。
  • 下载 sqlite-tools-win-x64-3480000.zip,然后解压如下。
  • 为方便后续使用这个工具,可以将此目录配置到系统环境变量 path 中。如下所示。

首先登录shell(命令行运行sqlite3.exe)查看操作指南,需要记住命令都是"."开头,.help展示帮助指令,.open filename创建一个数据库, .quit 退出命令行

3、SQLiteStudio 图形工具
SQLiteStudio 是一款专门用于管理和操作 SQLite 数据库的免费工具。它提供直观的图形化界面,简化了数据库的创建、编辑、查询和维护,适合数据库开发者和数据分析师使用。
SQLiteStudio 提供的主要功能包括:
    免费开源,可以用于任何目的,包括商业使用。
    跨平台支持,包括 Windows、Linux 以及 MacOS X 系统。
    SQL 高级编辑,支持语法高亮、自动补全、历史记录等。
    跨数据库支持,可以在单个查询中访问多个数据库中的表,通过拖拽方式跨数据库复制表。
    数据导入导出,支持 CSV、JSON、Excel、SQL 脚本等多种格式。
    管理加密数据库,包括 SQLCipher、WxSQLite3 以及 System.Data.SQLite。
    插件扩展,提供插件机制扩展 SQLite 功能,例如 JavaScript、Python 以及 Tcl 脚本创建自定义函数。
    数据生成,支持各种方式自动填充数据,方便测试。

官方网址:https://sqlitestudio.pl/。
下载地址:https://github.com/pawelsalawa/sqlitestudio/releases。有安装版本,也有解压版本,这里我选择的是解压版。
安装或者解压后双击 SQLiteStudio.exe 运行工具,第一次会提示选择语言,选择简体中文即可。添加数据库,一个文件就是一个数据库,可以直接创建数据库,也可以连接已存在的数据库文件。
扩展插件的管理可以通过“工具”->“打开配置对话框”菜单打开。【外观】那里可以设置语言。

4、DBeaver 通用数据库工具
DBeaver社区是一个免费的跨平台通用数据库工具,适用于开发人员、数据库管理员、分析师和所有处理数据的人。它支持所有流行的SQL数据库,如MySQL、MariaDB、PostgreSQL、SQLite、Apache Family等。
https://wangmaoxiong.blog.csdn.net/article/details/82659949。 

5、sqlite-gui:一款开源免费、功能强大的SQLite开发工具
doc/csdn/md/sqlite-gui:一款开源免费、功能强大的SQLite开发工具.md · 汪少棠/material - Gitee.com.

三、SQLite + JDBC 快速使用

因为 SQLite 是嵌入式的,所以和H2数据库一样,都不需要单独安装数据库,而只需要在程序中引入它们的依赖,即可使用。SQLite 的每一个 .db 文件就是一个单独的数据库,可以随意复制粘贴使用。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/947147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟IIC与硬件IIIC哪个更常用?

在实际项目中,两种方式都被广泛使用,但模拟IIC(软件IIC)的应用场景更多、更普遍。 下面我们来详细解释一下两者的区别、优缺点和适用场景。 硬件IIC 硬件IIC是指由微控制器内部的专用IIC外设电路来实现的。你只需要…

251019 NOIP 模拟赛 T2 | dp 及其优化、调整法最优解性质、数形结合

OJ 传送门 原题: QOJ 5500 题意 有 \(n\) 个屋子排成一列,每个屋子里一个人,每个屋子可以开酒吧。 每个人会去自己左右两侧最近的(分别)酒吧消费。 一个方案的价值为 \(\sum _ {酒吧} 来这个酒吧的人数 \times p_i…

常见问题解决 --- 未识别函数

常见问题解决 --- 未识别函数

小作业 14(2018 北京高考文科)

已知椭圆 \(M:\dfrac{x^2}{3}+y^2=1\),斜率为 \(k\) 的直线 \(l\) 与椭圆 \(M\) 有两个不同的交点 \(A\),\(B\)。设 \(P(-2,0)\),直线 \(PA\) 与椭圆 \(M\) 的另一个交点为 \(C\),直线 \(PB\) 与椭圆 \(M\) 的另一…

第六章习题

下面的机器数都以16进制表示w func1(w) func2(w)机器数 ; 值 机器数 ; 值 机器数 ; 值0000007F;127 0000007F;127 0000007F;12700000080;128 00000080;128 FFFFFF80;-128000000FF;255 000000FF;255 FFFFFFFF;-10000010…

速通 花卉鉴赏 短文

真鲜花灵感来自 P&KU3(上) 第二日《时空花园》一题。 顺带一提,我在查阅资料的时候并没有找到百度百科花钟对应 list 的一个 reference,最后在 wikipedia 里有 reference 的里面选了一些写,如果有知道的朋友可…

Agent常见模式 - 智慧园区

我希望用最直白的方式,让大家理解这四种常见的模式,并且真实商业落地和你想的可能完全相反。 模式讲解 第一种,工作流LLM 这种方式最直观,就是在你原有的工作流上插入Agent,替换掉原来代码做不了,必须人做的事请…

react-router7.9.4使用

安装 新版路由简化了安装,只需要以下命令即可 npm i react-router创建路由文件 在项目根目录下创建路由文件 src\router\index.ts import { lazy } from react import Root from ../components/root import { createH…

AI元人文:从战略能力到价值对话的实现框架

AI元人文:从战略能力到价值对话的实现框架 核心洞见:无需从零创造,“价值对话AI”可通过重构已验证的战略型AI技术基石实现。关键在于对其能力进行目标升华与伦理重塑。 一、四项核心重构架构重构:从利益博弈到价值…

Loneliness

Spending years with a group of people who are fundamentally dissimilar is loneliness. Feeling the passage of time is also so lonely. Memories and regrets can even be so lonely. The speed of time never …

Java流程控制——用户交互Scanner

Java流程控制——用户交互Scanner用户交互Scanner 使用Scanner类实现获取用户输入 Scanner s = new Scanner(System.in);可通过Scanner类的next()与nextLinevitable()方法获取输入的字符串, 在读取前一般用hasNext()与…

概率论测试

后续会上传批改版本

2025.10.26总结

今天做了23年5月份上半场的75道选择,怎么说,没及格,无论是知识点的广度上还是深度上都差的很远,以目前的水平考试,能不能通过完全靠运气。 下午题看了几眼,一共五六道比较固定的答题,熟悉题型和做题方法后应该就…

Python---开发桌面应用程序

早就知道可以使用Python的PyQT构建桌面应用程序了,但是没有具体实际过,以前都是使用前端来开发桌面应用程序的,安装依赖麻烦的要死,打包的时候还各种繁琐。 没想到使用Python来开发桌面应用程序如此的简单。 直接撸…

Python实现验证码识别的完整流程解析

验证码(CAPTCHA)是网络安全防护中最常见的技术之一,主要用于防止恶意程序批量请求服务。然而,随着深度学习和图像处理技术的发展,验证码的自动识别已成为人工智能领域的一个重要应用场景。本文将通过 Python 展示…

基于Python的验证码自动识别方案设计与实现

验证码是互联网安全的重要组成部分,广泛应用于注册、登录、投票等场景。其主要目的是防止机器人程序的恶意请求。然而,随着图像处理和深度学习的发展,验证码自动识别技术逐渐成熟。本文将介绍一种基于 Python 的验证…

2025/10/26

2025/10/26学习数据结构

大学生为什么要认真听课

读这几篇博客,让我颇有共鸣。不少大学生从非专业课松懈到专业课失守,上课刷短视频更加剧了注意力流失,让我们逐渐放弃学习。大一刚开始我也会上课认真听讲,晚自习会听一些网课,补充上课没听到的知识。从非专业课的…

中科大「数学分析教程——上册」习题选做 - Neuro

1.6 节 \(\mathbf{Problem\ 1}\) 解: \[\begin{align*} &(1). \lim_{n \rightarrow \infin}\left(1 + \frac{1}{n - 2}\right)^n & = &\lim_{n \rightarrow \infin}\left(1 + \frac{1}{n - 2}\right)^{n …