Package Exports
- node-sql-parser
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-sql-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
GanJiang SQL Parser
Parse simple SQL statements into an abstract syntax tree (AST) with the visited tableList and convert it back to SQL.
⭐ Features
- support multiple sql statement seperate by semicolon
- support select, delete, update and insert type
- output the table list that the sql visited with the corresponding authority
🚀 Usage
Create AST for SQL statement
const { Parser } = require('node-sql-parser');
const parser = new Parser();
const ast = parser.sqlToAst('SELECT * FROM t');
console.log(ast);Get the SQL visited tables
- get the table list the sql visit
- the format is {type}::{dbName}::{tableName} // type could be select, update, delete or insert
const { Parser } = require('node-sql-parser');
const parser = new Parser();
const tableList = parser.tableList('SELECT * FROM t');
console.log(tableList); // ["select::null::t"]Convert AST back to SQL
const { Parser, util } = require('node-sql-parser');
const parser = new Parser()
const ast = parser.sqlToAst('SELECT * FROM t');
const sql = util.astToSQL(ast);
console.log(sql); // SELECT * FROM `t`The generated SQL is ANSI SQL compliant. To run those queries on MySQL, make sure you set correct SQL mode
SET SESSION sql_mode = 'ANSI';before running any query.
😘 Acknowledgement
This project is based on the SQL parser extracted from flora-sql-parser module.