软件研究之SQLite

标签: 无 分类: 未分类 创建时间:2024-10-22 09:27:39 更新时间:2025-01-17 10:39:24

1.前言

因为要用到了 mbtiles ,我不得不去看了看 SQLite 数据库。

优点:

  • 不需要配置,不需要安装和管理
  • 不需要一个单独的服务器进程或操作的系统(无服务器的)
  • 一个完整的SQLite数据库存储在一个单一的跨平台的磁盘文件上
  • SQLite是非常小的,轻量级的数据库,完全配置时小于400KiB,省略可选功能配置时小于250KiB
  • SQLite是一个自给自足的数据库,这也就意味着不需要任何外部的依赖
  • SQLite事务是完全兼容ACID的,允许从多个进程或线程安全访问
  • SQLite支持SQL92(SQL2)标准的大多数查询语言的功能
  • SQLite使用ANSI-C编写的,并提供了简单和易于使用的API
  • SQLite可在UINX(Linux,Max OS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中运行

缺点:

  • 在SQLite中,SQL92不支持的特性如下所示:
  • RIGHT OUTER JOIN: 只实现了LEFT OUTER JOIN
  • FULL OUTER JOIN: 只实现了LEFT OUTER JOIN
  • ALTER TABLE: 支持RENAME TABLE和ALTER TABLE的ADD COLUMN variants命令,
  • 不支持DROP COLUMN、ALTER COLUMN、ADD CONSTRAINT
  • Trigger支持:支持FOR EACH ROW触发器,但不支持FOR EACH STATEMENT触发器
  • VIEWS: 在SQLite中,视图是只读的,不能在视图中执行DELETE、INSERT或UPDATE语句
  • GRANT 和 REVOKE:可以应用的唯一的访问权限是底层操作系统的正常文件访问权限
参考文章:
【1】.SQLite 简介
【2】.SQLite简介 SQLite是一个进程内的轻量级嵌入式数据库,它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这就体现出来SQLite与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。且SQLite不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite可直接访问其存储文件。
【3】.浅谈利用SQLite存储离散瓦片的思路和实现方法 Sqlite的优点:a. 轻量级,b. 单一文件,c. 跨平台/可移植性,d.内存数据库。
【4】.SQLite和MySQL数据库的区别与应用

2.SpatiaLite

参考文章:
【1】.SpatiaLite SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.
【2】.地理空间数据库盘点
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。