README.md
AlaSQL是一个开源项目,每月使用超过200万页面浏览量,我们非常感谢我们可以获得的所有贡献。
如果有问题,可以使用"alasql"的标签 Stack Overflow上提问。
AlaSQL - (àlaSQL)[ælæɛskju:ɛl] - 是一个用于JavaScript的开源SQL数据库,主要关注关系数据和无模式数据的查询速度和数据源灵活性。它适用于Web浏览器,Node.js和移动应用程序。
该库专为:
1. 针对大型客户端的BI和ERP应用程序的实现快速内存中SQL数据处理
2. 通过数据导入/操作/导出多种格式,轻松实现ETL和持久性选项
3. 所有主流浏览器,Node.js和移动应用程序
在构建查询时,我们通过利用JavaScript的动态特性来关注速度。现实世界的解决方案需要灵活的数据来源和存储位置。我们专注于灵活性,确保您可以直接导入/导出和查询存储在Excel(.xls和.xlsx),CSV,JSON,TAB,IndexedDB,LocalStorage和SQLite文件中的数据。
该库为您的JavaScript应用程序添加了完整数据库引擎的舒适性。它正在努力建立一个符合大多数SQL-99语言的完整数据库引擎,为NoSQL(无模式)数据和图形网络提供额外的语法。
基本使用
传统的sql表格
/* create SQL Table and add data */
alasql("CREATE TABLE cities (city string, pop number)");
alasql("INSERT INTO cities VALUES ('Paris',2249975),('Berlin',3517424),('Madrid',3041579)");
/* execute query */
var res = alasql("SELECT * FROM cities WHERE pop < 3500000 ORDER BY pop DESC");
// res = [ { "city": "Madrid", "pop": 3041579 }, { "city": "Paris", "pop": 2249975 } ]
数组对象
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 } ]
电子表格
// file is read asynchronously (Promise returned when SQL given as array)
alasql(['SELECT * FROM XLS("./data/mydata") WHERE lastname LIKE "A%" and city = "London" GROUP BY name '])
.then(function(res){
console.log(res); // output depends on mydata.xls
}).catch(function(err){
console.log('Does the file exist? There was an error:', err);
});
批量数据加载
alasql("CREATE TABLE example1 (a INT, b INT)");
// alasql's data store for a table can be assigned directly
alasql.tables.example1.data = [
{a:2,b:6},
{a:3,b:4}
];
// ... or manipulated with normal 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}]
安装
npm install --save alasql # node
bower install --save alasql # bower
npm install -g alasql # global installation for command line tools
浏览器只需直接引用
AlaSQL还包括了js语法糖,CLI交互命令行等等。
更多功能,点击下方查看原文!
往期内容:
git commit emoji 使用指南
论如何写出诗一样的代码
【哪里有困难,哪里就有程序员】追踪问题疫苗企业销售数据走向
如何判断程序员正在做什么
为移动端异构计算平台优化的神经网络计算框架
终端json美化工具jq,你值得拥有
命令行终端上看世界杯
基于Three.js的Web3D地球数据可视化库Gio.js
又一个UI相关的前端框架【腾讯出品】
基于Go语言的又一重磅项目
webssh: 基于网页的ssh客户端
可能是最好用的微信机器人开发sdk
使用HTML或Pug交互式创建 PDF 文档
2018 年成為 Web 開發人員的路線圖
计算机科学速成课
ngrok: 内网穿透前后端联调利器
dayjs: 处理时间和日期的 JavaScript 库
G6: JavaScript 图可视化引擎
vividjs: 一个易用的svg库
JavaScript 算法与数据结构
UETool: 饿了么打造的可视化设计调试工具
proxyee-down: 百度云下载神器
Taro: 用 React 的开发方式开发小程序
Octotree: Github看代码必备神器
gtop: 一个用node写的界面美丽的终端监控软件
Httpie: 现代Http命令行客户端
可能是最好用的php管理后台生成工具(10分钟极速生成)
面向程序员的优质代码库清单
腾讯开源作品整理
前端信息源集锦
前端开发清单
后端架构师技术图谱
nodejs之父ry推出新一代的node:deno
欢迎小伙伴后台留言推荐好的Github项目:)
我们会对项目进行:
Readme的中文翻译简化
项目内容扩展
源码解读
等等