gluesql-js
gluesql-js copied to clipboard
GlueSQL JavaScript Interface
gluesql-js has been moved to the GlueSQL main repo
Link
https://github.com/gluesql/gluesql/tree/main/gluesql-js
GlueSQL-js
Use SQL in web browsers!
GlueSQL-js provides 3 storage options
- In-memory
- LocalStorage
- SessionStorage
:package: Installation
npm install gluesql
:cloud: Usage
const gluesql = import('gluesql');
async function main() {
const { Glue } = await gluesql;
const db = new Glue("memory");
/* other options:
const db = new Glue("localstorage", "{db-name}");
const db = new Glue("sessionstorage", "{db-name}");
*/
const sql = `
CREATE TABLE Test (id INTEGER, name TEXT);
INSERT INTO Test VALUES (101, "Glue");
INSERT INTO Test VALUES (102, "Rust");
INSERT INTO Test VALUES (103, "Yeah");
`;
await db.execute(sql);
const items = (await db.execute("SELECT * FROM Test WHERE id < 103;"))[0];
/* items:
[
[101, "Glue"],
[102, "Rust"],
]
*/
}
:sparkles: Examples
:books: Features
:green_book: Supported Queries
CREATE TABLEALTER TABLEINSERTUPDATESELECTDELETEDROP TABLE
:blue_book: Supported Data Types & Attributes
Types
INTEGERFLOATBOOLEANTEXT
Attributes
NULL|NOT NULL
Example
CREATE TABLE User (
id INTEGER,
name TEXT NULL,
valid BOOLEAN
);
:orange_book: Supported SQL Syntax Keywords
Join (only with ON keyword)
INNER JOIN|JOINLEFT JOIN|LEFT OUTER JOIN
Example
SELECT * FROM TableA
JOIN TableB ON TableB.a_id = TableA.id
WHERE TableA.id > 10;
NestedSelect
Example
SELECT * FROM User
WHERE User.id IN (SELECT id IN Other);
Aggregation
COUNTMAXMINSUMGROUP BY,HAVING
Example
SELECT
COUNT(*),
MAX(amount) + MIN(amount),
SUM(amount)
FROM TableA
GROUP BY city
HAVING COUNT(*) > 10;