Corsi on-line

Query SQL da JavaScript con Alasql.js

Attualmente esistono numerose soluzioni per chi desidera utilizzare un database in-memory, cioè che supporti le operazioni di storage e manipolazione dei dati direttamente in memoria appoggiandosi al browser per la navigazione Web corrente; molti di questi strumenti sono però di tipo non relazione (NoSQL), il che rappresenta un limite per tutti coloro che sono abituati ad interagire con i propria archivi tramite linguaggio SQL. Ecco perché Alasql.js potrebbe rivelarsi un’alternativa particolarmente utile.

SQL

Alasql.js è in pratica un database SQL client side in-memory scritto in puro JavaScript, rilasciato sotto licenza Open Source (MIT License) esso si basa sul framework event-driven Node.JS e, per quanto riguarda la compatibilità cross-browser, è supporto Google Chrome, Mozilla Firefox, Apple Safari, Internet Explorer, Opera Browser nonché dalle applicazioni per la navigazione mobile presenti di default sui sistemi operativi iOS and Android.

Ma riguardo alle funzionalità, nonostante Alasql.js sia basato su JavaScript mette a disposizione un supporto ottimale per la maggior parte delle features previste da SQL tra cui anche istruzioni basate su JOIN, GROUP, UNION, PRIMARY KEY, ANY, ALL, IN etc. e gli statements che fanno ricorso alle funzioni ROLLUP(), CUBE() e GROUPING SETS().

Da segnalare anche la presenza di un supporto per le Transactions che però rimarrebbe per il momento ancora molto limitato.

L’utilizzo di Alasql.js è estremamente semplice, una volta inclusa la necessaria libreria “.js” sarà possibile definire le query da eseguire tramite il metodo alasql(); nell’esempio seguente quest’ultimo è stato utilizzato per creare una tabella, inserire dati al suo interno e estrarre i record memorizzati:

<script src="alasql.js"></script>
  <script>
    alasql("CREATE TABLE test (language INT, hello STRING)");
    alasql("INSERT INTO test VALUES (1,'Hello!')");
    alasql("INSERT INTO test VALUES (2,'Aloha!')");
    alasql("INSERT INTO test VALUES (3,'Bonjour!')");
    console.table(alasql("SELECT * FROM test WHERE language > 1"));
  </script>

Da notare che Alasql.js non fa utilizzo della Storage API (Application Programming Interface) e che, per velocizzare l’interazione con i dati, la libreria supporta il caching delle query compilate, la pre-indicizzazione delle tabelle sottoposte a JOIN e i filtri preventivi per ottimizzare l’uso della clausola WHERE.

Via Alasql.js

Post correlati
I più letti del mese
Tematiche