Inicio › Herramientas para desarrolladores › Compilador SQL online

Compilador SQL online

Escribe SQL y ejecútalo en una base de datos SQLite real directamente en tu navegador. Empieza con una base de datos de ejemplo de una empresa, una tienda o un colegio, ejecuta varias sentencias a la vez y luego exporta los resultados como CSV o descarga la base de datos completa.

Última actualización:

Lín 1, Col 1Ctrl + Intro ejecuta todo · selecciona texto para ejecutar solo esa parte
Cargando el motor SQLite…
Publicidad
Publicidad

Cómo usar Compilador SQL online

  1. Elige una base de datos: una empresa, una tienda online o un colegio de ejemplo, o una vacía. Sus tablas y columnas aparecen a la izquierda.
  2. Escribe SQL en el editor o haz clic en una consulta de ejemplo encima de él.
  3. Pulsa Ejecutar SQL o Ctrl + Intro. Para ejecutar solo una parte del script, selecciónala primero.
  4. Lee los resultados. Cada sentencia muestra sus filas, las filas que modificó y cuánto tardó. Los errores marcan la línea.
  5. Exporta un resultado como CSV o pulsa Descargar .db para guardar la base de datos con tus cambios.

Referencia rápida de SQL (SQLite)

TareaSQL
Filtrar y ordenarSELECT name, salary FROM employees WHERE salary > 100000 ORDER BY salary DESC LIMIT 5;
Unir dos tablasSELECT e.first_name, d.name FROM employees e JOIN departments d ON d.id = e.department_id;
Conservar filas sin coincidencia… FROM departments d LEFT JOIN employees e ON e.department_id = d.id
Agregar por grupoSELECT department_id, COUNT(*), AVG(salary) FROM employees GROUP BY department_id HAVING COUNT(*) > 2;
Clasificar dentro de gruposRANK() OVER (PARTITION BY department_id ORDER BY salary DESC)
Subconsulta con nombre (CTE)WITH big AS (SELECT * FROM orders WHERE total > 100) SELECT COUNT(*) FROM big;
Valor condicionalCASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' ELSE 'C' END
Fechasdate('now'), strftime('%Y-%m', order_date), julianday(b) - julianday(a)
Unir textofirst_name || ' ' || last_name
Reemplazar NULLCOALESCE(manager, '(none)') o IFNULL(x, 0)
Insertar o actualizarINSERT INTO t (id, n) VALUES (1, 'a') ON CONFLICT(id) DO UPDATE SET n = excluded.n;
Modificar y eliminar filasUPDATE products SET stock = stock - 1 WHERE id = 3; DELETE FROM orders WHERE status = 'cancelled';

Las bases de datos de ejemplo

  • Empresa: departments, employees (con un manager_id que apunta de nuevo a employees, ideal para auto-joins), projects y la tabla de enlace employee_projects. Un becario no tiene departamento, así que puedes ver en qué se diferencian INNER y LEFT JOIN.
  • Tienda online: customers, products, orders con una restricción CHECK en el estado, y order_items. Ideal para totales de ingresos, informes mensuales y encontrar clientes sin pedidos.
  • Colegio: students, courses y enrollments con calificaciones, una de ellas aún NULL. Practica promedios, calificación con CASE, clasificaciones y NOT EXISTS.

Todos los datos son ficticios. Edítalos libremente: Restablecer datos recupera las filas originales en cualquier momento.

SQLite en pocas palabras

SQLite guarda una base de datos completa en un solo archivo y es el motor de bases de datos más utilizado: viene integrado en todos los navegadores importantes, en los sistemas operativos de los teléfonos y en innumerables aplicaciones de escritorio. Las columnas tienen una afinidad de tipo en lugar de un tipo estricto, así que una columna TEXT puede contener un número salvo que declares la tabla como STRICT. Una columna declarada como INTEGER PRIMARY KEY se convierte en el id de la fila y se rellena sola cuando insertas NULL o la omites. Los booleanos se guardan como 0 y 1, por eso SUM(status = 'cancelled') cuenta las filas que coinciden.

Preguntas frecuentes

¿Qué dialecto de SQL usa este compilador?

SQLite 3, mediante sql.js, el código C oficial de SQLite compilado a WebAssembly. Admite SELECT estándar, joins, GROUP BY, subconsultas, CTE (WITH y WITH RECURSIVE), funciones de ventana como RANK y ROW_NUMBER, UPSERT, funciones JSON y funciones de fecha. Las funciones de servidor, como procedimientos almacenados, usuarios y GRANT, no existen en SQLite.

¿Se guardan mis datos?

La base de datos vive en la memoria de tu navegador mientras la página está abierta. Al recargar o cambiar de base de datos, se restablecen los datos de ejemplo, pero tu texto SQL se recuerda en este dispositivo. Pulsa Descargar .db para guardar una copia con todos tus cambios y vuelve a abrirla más tarde con Abrir .db.

¿Puedo practicar consultas de MySQL o PostgreSQL aquí?

La mayor parte del SQL de uso diario funciona igual: SELECT, WHERE, JOIN, GROUP BY, ORDER BY, LIMIT, INSERT, UPDATE y DELETE. Las diferencias aparecen en los tipos de datos, las funciones de texto y las fechas: SQLite usa || para unir textos, strftime() y date() para las fechas, y no tiene ILIKE ni SERIAL. Usa INTEGER PRIMARY KEY para ids autoincrementales.

¿Cómo ejecuto varias sentencias?

Sepáralas con punto y coma y pulsa Ejecutar. Se ejecutan en orden, y cada sentencia que devuelve filas obtiene su propia tabla de resultados. Si una falla, las anteriores ya se habrán ejecutado y el error muestra dónde se detuvo.

¿Se suben mis consultas o archivos?

No. SQLite se ejecuta por completo dentro de la pestaña de tu navegador. Tu SQL, los datos de ejemplo y cualquier archivo .db que abras nunca salen de tu dispositivo.

¿Qué tamaño puede tener una base de datos?

Las bases de datos se mantienen en memoria, así que los archivos de decenas de megabytes funcionan bien en la mayoría de los ordenadores. Los archivos muy grandes pueden tardar en abrirse o superar la memoria disponible para la pestaña. La tabla de resultados muestra las primeras 1,000 filas, mientras que la exportación CSV incluye todas.

¿Por qué aparece 'no such column' si la columna existe?

Normalmente porque un texto se escribió entre comillas dobles. En SQL, las 'comillas simples' marcan valores de texto y las "comillas dobles" marcan nombres, así que WHERE name = "Ann" busca una columna llamada Ann. Escribe WHERE name = 'Ann' en su lugar.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Conversores de datos y formatos de archivo →