Giter Club home page Giter Club logo

mifei-clone-sql92-json's Introduction

SQL92-JSON

can stringify a JSON into a SQL and viceversa parse a SQL statement and serialize it into a JSON

Installation | API | Examples | Recipes | References | License

NPM version Build Status Badge size Coverage Status JavaScript Style Guide

Demo

Installation

Using npm

With npm do

npm install sql92-json

Using a CDN

Add this to your HTML page

<script src="https://unpkg.com/sql92-json/dist/sql92-json.min.js"></script>

API

Both CommonJS and ES6 imports are supported. Code snippets below use require, it is also possible to do

import { parse, stringify } from 'sql92-json'

stringify

Convert a JSON to SQL

Both require('sql92-json').stringify and require('sql92-json/stringify') are valid.

var json2sql = require('sql92-json').stringify

console.log(json2sql({ SELECT: ['*'], FROM: ['revenue'] }))
//
// SELECT *
// FROM revenue
//

parse

Convert an SQL to JSON

Both require('sql92-json').parse and require('sql92-json/parse') are valid.

var sql2json = require('sql92-json').parse

console.log(sql2json('SELECT * FROM revenue')
// {
//   SELECT: ['*'],
//   FROM: ['revenue']
// }

Recipes

Examples

See examples folder where every .json file has its homonym .sql.

See for example the following example JSON and its corresponding SQL.

{
  "SELECT": [ { "COUNT": "*", "AS": "num" } ],
  "FROM": [
    {
      "SELECT": ["*"],
      "FROM": ["mytable"],
      "WHERE": [
        "yyyymmdd", { "=": 20170101 },
        { "AND": [ "country", { "IN": ["IT", "US"] } ] },
        { "AND": [
          "categoryid", { "BETWEEN": [100, 200] },
          { "OR": [ "productname", { "!=": "'icecream'" } ] }
        ] }
      ]
    }
  ]
}
SELECT COUNT(*) AS num
FROM (
	SELECT *
	FROM mytable
	WHERE yyyymmdd = 20170101
		AND country IN ( 'IT', 'US' )
		AND (
			categoryid BETWEEN 100 AND 200
			OR productname != 'icecream'
		)
)

References

sql1992.txt was downloaded from here.

License

MIT

mifei-clone-sql92-json's People

Contributors

fibo avatar mefly521 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.