sqlite 数据库 介绍

news2024/10/6 12:18:26

文章目录

  • 前言
  • 一、什么是 SQLite ?
  • 二、语法
  • 三、SQLite 场景
  • 四、磁盘文件

前言

下载

目前已经出到了, Version 3.46.0

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是 SQLite ?

在这里插入图片描述

SQLite 是一个用 C 语言编写的库,实现了一个小型、快速、独立、高可靠、功能齐全的 SQL 数据库引擎。SQLite 是全球使用最广泛的数据库引擎。它内置于所有手机和大多数计算机中,并与人们日常使用的无数其他应用程序捆绑在一起。更多信息…
SQLite 的文件格式稳定、跨平台且向后兼容,开发人员承诺到 2050 年都保持这种状态。SQLite 数据库文件通常用作在系统之间传输丰富内容的容器[1][2][3],以及作为数据的长期存档格式[4]。目前有超过 1 万亿(1e12)个 SQLite 数据库在活跃使用[5]。
SQLite 的源代码属于公共领域,任何人都可以免费用于任何目的。

官网下载

https://sqlite.org/download.html

二、语法

计算当前日期。
SELECT date();
计算当前月的最后一天。
SELECT date('now','start of month','+1 month','-1 day');
计算给定 Unix 时间戳 1092941466 的日期和时间。
SELECT datetime(1092941466, 'unixepoch');
SELECT datetime(1092941466, 'auto'); -- 对于 1970 年初不起作用!
计算给定 Unix 时间戳 1092941466,并根据本地时区进行补偿。
SELECT datetime(1092941466, 'unixepoch', 'localtime');
计算当前的 Unix 时间戳。
SELECT unixepoch();
SELECT strftime('%s');
计算自美国《独立宣言》签署以来的天数。
SELECT julianday('now') - julianday('1776-07-04');
计算自 2004 年某一特定时刻以来的秒数:
SELECT unixepoch() - unixepoch('2004-01-01 02:34:56');
计算本年度十月的第一个星期二的日期。
SELECT date('now','start of year','+9 months','weekday 2');
以秒为单位,计算具有毫秒精度的自 Unix 纪元以来的时间:
SELECT (julianday('now') - 2440587.5)*86400.0;
SELECT unixepoch('now','subsec');
计算如果亚伯拉罕·林肯还活着,他现在的年龄:
SELECT timediff('now','1809-02-12');

三、SQLite 场景

SQLite 具有广泛的使用场景,包括但不限于以下几个方面:
移动应用:在智能手机和平板电脑的应用程序中,SQLite 常被用于存储应用数据,如用户设置、本地缓存、离线数据等。由于其轻量级和无需服务器配置的特点,非常适合资源受限的移动环境。
桌面应用:小型的桌面应用程序可以使用 SQLite 来存储配置信息、用户偏好、本地数据等。
嵌入式系统:在嵌入式设备和物联网设备中,SQLite 可用于存储设备的状态信息、传感器数据、配置参数等。
原型开发和测试:在项目的早期阶段或进行快速原型开发时,SQLite 易于设置和使用,能够快速验证数据存储和查询的逻辑。
单用户应用:对于仅由单个用户使用的应用程序,SQLite 提供了一种简单且有效的数据存储解决方案,无需复杂的数据库服务器管理。
本地数据存储:例如在一些数据分析工具中,用于临时存储和处理本地的数据文件。
小型网站和博客:对于流量较小、数据量不大的网站或博客,SQLite 可以作为简单的数据库来存储文章、评论、用户信息等。
总之,SQLite 在需要轻量级、本地、单用户或小规模数据存储和管理的场景中表现出

四、磁盘文件

在 SQLite 中,一个数据库就是一个单一的磁盘文件¹。此外,其文件格式是跨平台的。在一台机器上创建的数据库可以被复制并在具有不同架构的另一台机器上使用。SQLite 数据库在 32 位和 64 位机器之间以及大端和小端架构之间都是可移植的。
SQLite 数据库文件格式也是稳定的。SQLite 3 的所有版本都能读取和写入自 2004 年 6 月 18 日首次发布的 SQLite 3(版本 3.0.0)所创建的数据库文件。这就是“向后兼容性”。开发人员承诺在 SQLite 3 的所有未来版本中保持数据库文件格式的向后兼容性。“向前兼容性”意味着较旧版本的 SQLite 也能够读取和写入由较新版本创建的数据库。SQLite 通常(但并非完全)具有向前兼容性。
SQLite 数据库文件格式的稳定性以及其跨平台的特性相结合,使得 SQLite 数据库文件成为应用文件格式的绝佳选择。美国国会图书馆认可这一点,将 SQLite 列为长期保存数字内容的推荐存储格式。

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

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

相关文章

Node 中基于 Koa 框架的 Web 服务搭建实战

前言 在《Node之Web服务 - 掘金 (juejin.cn)》一文中,我们使用 HTTP 模块构建了后端接口,从而实现了后端服务的开发。可以对此进行进一步优化 http模块代码回顾 const http require("http");const server http.createServer((req, res) > {if (reqUrl.pathna…

Simulated Annealing

模拟退火最大值算法: 初始化起始解 x 0 x_0 x0​ 、温度 t 0 t_0 t0​ 以及迭代次数 steps,计算初始值 y 0 y_0 y0​扰动产生新解 x 1 x_1 x1​, 计算对应函数值 y 1 y_1 y1​依据 Δ y y 1 − y 0 \Delta y y_1 - y_0 Δyy1​−y0​ 决策是否接…

element-ui输入框如何实现回显的多选样式?

废话不多说直接上效果&#x1f9d0; 效果图 <template><div><el-form:model"params"ref"queryForm"size"small":inline"true"label-width"68px"><el-form-item label"标签" prop"tag&q…

CurrentHashMap巧妙利用位运算获取数组指定下标元素

先来了解一下数组对象在堆中的存储形式【数组长度&#xff0c;数组元素类型信息等】 【存放元素对象的空间】 Ma 基础信息实例数据内存填充Mark Word,ClassPointer,数组长度第一个元素第二个元素固定的填充内容 所以我们想要获取某个下标的元素首先要获取这个元素的起始位置…

UEC++ 虚幻5第三人称射击游戏(二)

UEC++ 虚幻5第三人称射击游戏(二) 派生榴弹类武器 新建一个继承自Weapon的子类作为派生榴弹类武器 将Weapon类中的Fire函数添加virtual关键字变为虚函数让榴弹类继承重写 在ProjectileWeapon中重写Fire函数,新建生成投射物的模版变量 Fire函数重写逻辑 代码//生成的投射物U…

使用Spring Boot和自定义缓存注解优化应用性能

在现代应用开发中&#xff0c;缓存是提高系统性能和响应速度的关键技术之一。Spring Boot提供了强大的缓存支持&#xff0c;但有时我们需要更灵活的缓存控制。本文将介绍如何使用Spring Boot和自定义缓存注解来优化应用性能。 1. 为什么需要自定义缓存注解&#xff1f; Sprin…

CH12_函数和事件

第12章&#xff1a;Javascript的函数和事件 本章目标 函数的概念掌握常用的系统函数掌握类型转换掌握Javascript的常用事件 课程回顾 Javascript中的循环有那些&#xff1f;Javascript中的各个循环特点是什么&#xff1f;Javascript中的各个循环语法分别是什么&#xff1f;…

Android仿今日头条新闻(一)

新建一个侧边栏的文件&#xff0c;创建成功后直接运行。可以看到带滑动的侧边栏功能如图所示&#xff1a; 主体UI&#xff1a; 新闻UI的实现: 侧边栏&#xff1a; 更换一下颜色&#xff1a; 学习参考-浩宇开发

科研绘图系列:R语言两组数据散点分布图(scatter plot)

介绍 展示两组数据的散点分布图是一种图形化表示方法,用于显示两个变量之间的关系。在散点图中,每个点代表一个数据点,其x坐标对应于第一组数据的值,y坐标对应于第二组数据的值。以下是散点图可以展示的一些结果: 线性关系:如果两组数据之间存在线性关系,散点图将显示出…

【JVM系列】Full GC(完全垃圾回收)的原因及分析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

IDA*——AcWing 180. 排书

IDA* 定义 IDA*&#xff08;Iterative Deepening A*&#xff09;是一种结合了深度优先搜索&#xff08;DFS&#xff09;的递归深度限制特性和A搜索的启发式估价函数的搜索算法。它主要用于解决启发式搜索问题&#xff0c;尤其是当搜索空间很大或者搜索成本不确定时。 IDA* 是…

分享大厂对于缓存操作的封装

hello&#xff0c;伙伴们好久不见&#xff0c;我是shigen。发现有两周没有更新我的文章了。也是因为最近比较忙&#xff0c;基本是993了。 缓存大家再熟悉不过了&#xff0c;几乎是现在任何系统的标配&#xff0c;并引申出来很多的问题&#xff1a;缓存穿透、缓存击穿、缓存雪崩…

markdown导入其它markdown文件

相应语法 [toc] # 测试不同功能 <p> 这是类似超链接的管理方式 </p>[链接测试0](./part0/uml_base.md)[链接测试1](./part1/math_base.md)---<p> 这是直接导入文件的管理方式 </p>import "./part0/uml_base.md"---import "./part1/mat…

arm64架构kvm情景分析 - type1型和type2型虚拟机管理器

内核版本&#xff1a;linux-v5.9 架构&#xff1a;arm64 1 type1型和type2虚拟机管理器 在arm64架构中&#xff0c;共有EL3到EL0四个异常级别&#xff0c;EL3异常级别最高。通常操作系统&#xff08;如linux&#xff09;运行在EL1&#xff0c;应用程序运行在EL0&#xff0c;EL…

S32DS S32 Design Studio for S32 Platform 3.5 代码显示行号与空白符

介绍 NXP S32DS&#xff0c;全称 S32 Design Studio&#xff0c;s32 系列芯片默认使用 S32 Design Studio for S32 Platform 作为 IDE 集成开发环境&#xff0c;当前版本 S32 Design Studio for S32 Platform 3.5&#xff0c;IDE 可以简称 s32DS 使用 S32DS&#xff0c;可以认…

python操作SQLite3数据库进行增删改查

python操作SQLite3数据库进行增删改查 1、创建SQLite3数据库 可以通过Navicat图形化软件来创建: 2、创建表 利用Navicat图形化软件来创建: 存储在 SQLite 数据库中的每个值(或是由数据库引擎所操作的值)都有一个以下的存储类型: NULL. 值是空值。 INTEGER. 值是有符…

JavaWeb开发基础7个Web术语解析

7个Web术语 Website: static vs dynamic HTTP HTTP Requests GET vs POST Servlet Container Server: Web vs Application Content Type Website: static vs dynamic 网站内容包括文本、图片、音频、视频&#xff0c;通过URL来访问。网站分为静态网站和动态网站。 静态网…

LLMs之gptpdf:gptpdf的简介、安装和使用方法、案例应用之详细攻略

LLMs之gptpdf&#xff1a;gptpdf的简介、安装和使用方法、案例应用之详细攻略 目录 gptpdf的简介 1、处理流程 第一步&#xff0c;使用 PyMuPDF 库&#xff0c;对 PDF 进行解析出所有非文本区域&#xff0c;并做好标记&#xff0c;比如: 第二步&#xff0c;使用视觉大模型&…

【数智化人物展】天云数据CEO雷涛:大模型连接数据库 为数智化提供高价值数据...

雷涛 本文由天云数据CEO雷涛投递并参与由数据猿联合上海大数据联盟共同推出的《2024中国数智化转型升级先锋人物》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 这几天&#xff0c;奥特曼讲SQL数据库和大模型结合起来会产生什么样的化学变化引起行业关注。为…

13.SQL注入-宽字节

SQL注入-宽字节 含义&#xff1a; MySQL是用的PHP语言&#xff0c;然后PHP有addslashes()等函数&#xff0c;这类函数会自动过滤 ’ ‘’ null 等这些敏感字符&#xff0c;将它们转义成’ ‘’ \null&#xff1b;然后宽字节字符集比如GBK它会自动把两个字节的字符识别为一个汉…