squel.js

167 阅读1分钟

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 */`