Squel.js es una biblioteca JavaScript para la construcción sencilla de consultas SQL.
La biblioteca completa tiene un peso de 27kb en su versión de desarrollo y apenas 3.6kb en su versión de producción (simplificada y comprimida mediante gzip).
Este proyecto es una excelente solución a la hora de construir consultas SQL sin la necesidad de realizar extensas concatenaciones u operaciones complejas que no hacen más que entorpecer la lectura de nuestro código.
La construcción de la consulta es extremadamente sencilla utilizando el objeto creado con Squel.js, una vez completada podemos obtener el resultado en forma de string común y corriente listo para ser ejecutado en nuestro motor de datos.
Construcción de una consulta SQL con JavaScript:
alert( squel.select() .from("students") .field("name") .field("MIN(test_score)") .field("MAX(test_score)") .field("GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ')") .group("name") ); /* Resultado: SELECT name, MIN(test_score), MAX(test_score), GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ') FROM students GROUP BY name */
Las operaciones que podemos construir con este recurso abarcan prácticamente cualquier escenario, desde los más sencillos con consultas sencillas del tipo select, hasta ejemplos más avanzados con consultas completas con JOINS de distintos tipos.
Para los más preocupados por el rendimiento, decir que Sequel.js se encuentra testeado con diversas herramientas y obtiene excelentes resultados con tiempos de ejecución más que aceptables.
Web: Squel.js
Squadron
12 años ago
Comparando las 2 formas, me parece practicamente lo mismo, hacerlo una query por JS me parece igual de facil que hacerla directo en PHP de la forma tradicional, hasta ahi todo bien, pero lo otro que se me ocurre es…
No podria ser una facilidad para un atacante construir una sentencia de inyeccion SQL ya que al hacerlo en JS algunos datos como los nombres de campos y tablas de la DB estarian visibles, ya que JS se ejecuta del lado del navegador, no del servidor.
Creo que me quedo con la forma tradicional de hacer las peticiones SQL 😛
Pablo
12 años ago
Buen punto, no había pensado en ese aspecto. Probablemente sea más seguro utilizar este recurso desde, por ejemplo, node.js. Gracias por el comentario, no había caído en el detalle de dejar visual los campos y nombres de tablas.
Lo mejor de la semana sobre desarrollo web en español vol. 12 | ADWE
12 años ago
[…] Construir consultas SQL con JavaScript […]
jesusobac
11 años ago
hey !! pero como me conecto a la BD, o sea en que momento le paso los parámetros de $bd, $localhost, $constraseña ??? como se hace la conexión ?