¿Es posible acceder a una base de datos SQLite desde JavaScript?

Tengo un conjunto de archivos HTML y una base de datos SQLite, a los que me gustaría acceder desde el navegador, usando el esquema file: //. ¿Es posible acceder a la base de datos y crear consultas (y tablas) usando JavaScript?

En realidad, la respuesta es sí. Aquí hay un ejemplo de cómo puedes hacer esto: http://html5doctor.com/introducing-web-sql-databases/

Lo malo es que es con soporte muy limitado por los navegadores.

Más información aquí HTML5 IndexedDB, Web SQL Database y guerras de navegadores

PD: Como @Christoph dijo que Web SQL ya no está en mantenimiento activo y que el Grupo de Trabajo de Aplicaciones Web no tiene la intención de mantenerlo más allá, mire aquí https://developer.mozilla.org/en-US/docs/IndexedDB .


EDITAR

Como dijo @clentfort, puede acceder a la base de datos SQLite con JavaScript del lado del cliente utilizando SQL.js.

Puede usar SQL.js, que es la lib SQLlite comstackda en JavaScript y almacenar la base de datos en el almacenamiento local introducido en HTML5.

Respuesta actualizada

Mi fork de sql.js ahora se ha fusionado con la versión original, en el repository de kriken .

La buena documentación también está disponible en el repository original.

Respuesta original (desactualizada)

Debería usar la versión más nueva de sql.js. Es un puerto de sqlite 3.8, tiene una buena documentación y se mantiene activamente (por mí). Admite declaraciones preparadas y tipo de datos BLOB.

Una de las características más interesantes en HTML5 es la capacidad de almacenar datos localmente y permitir que la aplicación se ejecute fuera de línea. Hay tres API diferentes que se ocupan de estas características y elegir una depende de qué es exactamente lo que quiere hacer con los datos que planea almacenar localmente:

  1. Almacenamiento web: para almacenamiento local básico con pares clave / valor
  2. Almacenamiento fuera de línea: utiliza un manifiesto para almacenar en caché los archivos completos para su uso sin conexión
  3. Base de datos web: para el almacenamiento de bases de datos relacionales

Para obtener más información, consulte Introducción a las API de almacenamiento HTML5.

Y cómo usar

http://cookbooks.adobe.com/post_Store_data_in_the_HTML5_SQLite_database-19115.html

En mi humilde opinión, la mejor manera es llamar a Python usando POST a través de AJAX y hacer todo lo que necesite hacer con el DB en Python, luego devolver el resultado al javascript. El soporte de json y sqlite en Python es increíble y está integrado al 100% incluso en las versiones más recientes de Python, por lo que no existe el inconveniente de “instalar esto, instalar eso”. En Python:

 import sqlite3 import json 

… eso es todo lo que necesitas. Es parte de cada distribución de Python.

@Sedrick Jefferson pidió ejemplos, así que (de manera algo tardía) escribí un vaivén autónomo entre Javascript y Python aquí.

¿Qué pasa con el uso de algo como PouchDB? http://pouchdb.com/