为何AlaSQL.js能成为JavaScript数据库顶流?

前有科技后进阶 2024-06-06 06:21:21

大家好,很高兴又见面了,我是"高级前端‬进阶‬",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!

什么是 AlaSQL.js

AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.

AlaSQL 是一个用于 JavaScript 的开源 SQL 数据库,重点关注关系数据和无模式数据的查询速度和数据源灵活性,适用于 Web 浏览器、Node.js 和移动应用程序。

AlaSQL 库非常适合以下场景:

为客户端上的 BI 和 ERP 应用程序快速进行内存中 SQL 数据处理通过多种格式的数据导入 / 操作 / 导出轻松实现 ETL 和持久性选项支持所有主流浏览器、Node.js 和移动应用程序构建查询时利用 JavaScript 的动态特性来专注于速,同时兼顾灵活性,确保开发者可以直接导入 / 导出和查询存储在 Excel(.xls 和 .xlsx)、CSV、JSON、TAB、IndexedDB、LocalStorage 和 SQLite 文件中的数据。

AlaSQL 为 JavaScript 应用程序添加了完整数据库引擎的便利性并为 NoSQL(无模式)数据和图形网络添加额外的语法。

目前 AlaSQL 在 Github 通过 MIT 协议开源,有超过 7k 的 star、1k 的 fork、2k 的项目依赖量、每月安装量达到了 200k+、妥妥的前端优质开源项目。

如何使用 AlaSQL.js

首先需要安装相应依赖:

yarn add alasql// yarnnpm install alasql// npmnpm install -g alasql// 全局 cli<script src="https://cdn.jsdelivr.net/npm/alasql@4"></script>// 还支持 CDN 导入

该库的使用非常简单,比如下面的例子是从对象数组中查询:

var data = [{a: 1, b: 10}, {a: 2, b: 20}, {a: 1, b: 30} ];var res = alasql('SELECT a, SUM(b) AS b FROM ? GROUP BY a',[data]);// 输出 res = [{"a": 1, "b": 40},{ "a": 2, "b": 20 } ]

当然,该库还允许从 Excel 文件中直接读取文件查询:

// sql 里面直接指定 xls 文件alasql(['SELECT * FROM XLS("./data/mydata") WHERE lastname LIKE"A%"and city ="London"GROUP BY name']) .then(function(res){ console.log(res); // 依赖于 mydata.xls }).catch(function(err){ // 异常捕获 console.log('Does the file exist? There was an error:', err); });

需要注意的是,AlaSQL.js 的文件内容是异步读取(当 SQL 作为数组给出时返回 Promise)的,当然开发者还可以通过批处理读取内容:

alasql("CREATE TABLE example1 (a INT, b INT)");//alasql 对表的数据存储可以直接赋值alasql.tables.example1.data = [ {a:2,b:6}, {a:3,b:4}];// 或者通过 SQL 处理alasql("INSERT INTO example1 VALUES (1,5)");var res = alasql("SELECT * FROM example1 ORDER BY b DESC");console.log(res);// 输出以下内容 [{a:2,b:6},{a:1,b:5},{a:3,b:4}]

值得一提的是,AlaSQL.js 具有很多性能优化选项、JavaScript 语法糖、读取和写入 Excel 和原始数据文件、读取 SQLite 数据库文件、AlaSQL 在控制台 CLI 中工作等众多选项。

本文因为篇幅问题,关于 AlaSQL.js 的更多示例和用法可以参考文末资料。

参考资料

https://github.com/AlaSQL/alasql

https://alasql.org/

https://www.devapp.it/wordpress/alasql-js-un-database-sql-leggero-e-veloce-per-le-tue-web-app-o-applicazioni-node-js/

1 阅读:181

前有科技后进阶

简介:感谢大家的关注