Squel.js 是一个轻量级的JavaScript库。用于非常简便地构建SQL查询字符串,通过一个面向对象的API。它支持浏览器(但不建议这么做)和nodejs。支持所有标准SQL查询并能够自定义支持非标准查询。
安装
node
npm install squel
bower
bower install squel
bower 是一个前端库管理工具,主要下载一些常用的 js 库,例如:jQuery、Bootstrap、Agularjs...
这样的好处是如果想要使用哪个工具库直接通过 bower install 库名 就可以下载下来,不再需要去网上找很多资源才能找到所需要的资源。而又不像 npm 一样下载一堆的依赖项。
浏览器模式
<script type="text/javascript" src="/your/path/to/squel.min.js"></script>
使用
# 引入
var squel = require("squel");
# 查看版本
log( squel.VERSION ); /* version string */
查询 - SELECT
// SELECT * FROM table
squel.select()
.from("table")
.toString()
// SELECT t1.id, t2.name FROM table `t1` LEFT JOIN table2 `t2` ON (t1.id = t2.id) WHERE (t2.name <> 'Mark') AND (t2.name <> 'John') GROUP BY t1.id
squel.select()
.from("table", "t1")
.field("t1.id")
.field("t2.name")
.left_join("table2", "t2", "t1.id = t2.id")
.group("t1.id")
.where("t2.name <> 'Mark'")
.where("t2.name <> 'John'")
.toString()
// SELECT `t1`.`id`, `t1`.`name` as "My name", `t1`.`started` as "Date" FROM table `t1` WHERE age IN (RANGE(1, 1.2)) ORDER BY id ASC LIMIT 20
squel.select({ autoQuoteFieldNames: true })
.from("table", "t1")
.field("t1.id")
.field("t1.name", "My name")
.field("t1.started", "Date")
.where("age IN ?", squel.str('RANGE(?, ?)', 1, 1.2))
.order("id")
.limit(20)
.toString()
//log( squel.select().from(``"students"`` ).toString() ); ``/* SELECT * FROM students */`