Cómo usar el compilador SQL online
- Escribe tu SQL en el editor. Puedes crear tablas (
CREATE TABLE), añadir datos (INSERT) y consultarlos (SELECT) en un solo script. Separa las sentencias con punto y coma. - Pulsa Ejecutar o usa Ctrl + Intro (⌘ + Intro en un Mac).
- Cada sentencia que devuelve filas se muestra como su propia tabla de resultados, en orden, con el número de filas debajo. Los valores
NULLse indican como tales. Si ninguna sentencia devuelve filas, verás en su lugar una breve confirmación. - Elige un límite de tiempo de 5, 15 o 60 segundos, útil para consultas recursivas que se descontrolan. Detener cancela una consulta al instante.
El motor SQLite es pequeño, muy por debajo de 1 MB, así que se carga casi al instante. Restablecer ejemplo recupera el esquema de ejemplo de empleados, y main.sql descarga tu script.
Tus consultas se ejecutan en un Web Worker en tu propio navegador. Ni el SQL ni los datos se suben ni se guardan en nuestros servidores. El editor conserva tu último script en el almacenamiento local de tu navegador, y en ningún otro sitio.
Qué admite
El compilador ejecuta SQLite 3 mediante sql.js, la biblioteca C de SQLite compilada a WebAssembly. Es un motor de base de datos relacional real, no un emulador.
- DDL y DML:
CREATE TABLE,CREATE INDEX,CREATE VIEW,INSERT,UPDATE,DELETE, restricciones, claves foráneas y triggers. - Consultas: joins, subconsultas,
GROUP BY/HAVING,UNION,CASEy expresiones de tabla comunes (CTE), incluidoWITH RECURSIVE. - Funciones de ventana como
ROW_NUMBER(),RANK(),LAG()y totales acumulados conSUM() OVER (...). - Funciones integradas para texto (
substr,upper,replace), números y fechas (date,strftime).
Limitaciones:
- Una base de datos en memoria nueva y vacía en cada ejecución. Las tablas no se conservan entre ejecuciones, así que deja tus sentencias
CREATEeINSERTal principio del script. - Es SQLite, no MySQL ni PostgreSQL. La mayor parte del SQL estándar funciona, pero no las características propias de cada sistema, como los procedimientos almacenados,
GRANT, la palabra claveAUTO_INCREMENTde MySQL o el tipoSERIALde PostgreSQL. - En los conjuntos de resultados grandes se muestran las primeras 1.000 filas, junto con el número total de filas.
- No puedes conectarte a una base de datos externa ni abrir tu propio archivo
.db.
Referencia rápida de SQL
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer TEXT NOT NULL,
amount REAL,
placed TEXT DEFAULT (date('now'))
);
INSERT INTO orders (customer, amount) VALUES
('Ada', 120.0), ('Ada', 35.5), ('Grace', 80.0);
WITH totals AS (
SELECT customer, SUM(amount) AS spent, COUNT(*) AS n
FROM orders
GROUP BY customer
)
SELECT customer, spent, n
FROM totals
WHERE spent >= 50 AND n <> 0
ORDER BY spent DESC;
| Tarea | SQL |
|---|---|
| Clave autonumérica | id INTEGER PRIMARY KEY |
| Filtrar filas | WHERE price BETWEEN 10 AND 20 |
| Buscar por patrón | WHERE name LIKE 'A%' |
| Concatenar texto | first || ' ' || last |
| Paginar | LIMIT 10 OFFSET 20 |
| Sustituir NULL | COALESCE(phone, 'n/a') |
| Insertar o actualizar | INSERT ... ON CONFLICT(id) DO UPDATE SET ... |
Consejos
- Usa
sqlite_masterpara ver lo que has creado:SELECT name, sql FROM sqlite_master; - Usa
EXPLAIN QUERY PLAN SELECT ...para ver si una consulta usa un índice. - SQLite usa tipado flexible: una columna declarada como
INTEGERpuede guardar texto igualmente. Añade restriccionesCHECK, o usa tablasSTRICT, cuando quieras que se respeten los tipos. - Las claves foráneas solo se aplican después de
PRAGMA foreign_keys = ON;. - ¿Una consulta larga y desordenada? Ordénala con el formateador de SQL antes de compartirla.
BEGIN; … COMMIT;. Generar datos de prueba con una CTE recursiva es una forma rápida de llenar una tabla con miles de filas para practicar.Preguntas frecuentes
¿Qué dialecto de SQL usa?
SQLite 3. Sigue de cerca el SQL estándar, así que es muy adecuado para aprender SELECT, joins, agrupaciones y funciones de ventana. La sintaxis propia de MySQL, PostgreSQL o SQL Server puede necesitar pequeños cambios.
¿Se guardan mis datos?
No. Cada ejecución crea una base de datos nueva en memoria, que se elimina en cuanto termina la ejecución. Solo se recuerda el texto SQL del editor, localmente en tu navegador.
¿Puedo ejecutar varias consultas a la vez?
Sí. Sepáralas con punto y coma. Las sentencias se ejecutan en orden, y cada una que devuelve filas genera su propia tabla de resultados.
¿Puedo practicar también con otros lenguajes?
Sí. Prueba el compilador de Python online, donde también funciona el módulo integrado sqlite3 de Python, o explora todas nuestras herramientas para desarrolladores.
Actualizado