Come usare il compilatore SQL online
- Scrivi il tuo SQL nell'editor. Puoi creare tabelle (
CREATE TABLE), aggiungere dati (INSERT) e interrogarli (SELECT) in un unico script. Separa le istruzioni con il punto e virgola. - Premi Esegui oppure usa Ctrl + Invio (⌘ + Invio su Mac).
- Ogni istruzione che restituisce righe viene mostrata come tabella dei risultati a sé, in ordine, con il conteggio delle righe sotto. I valori
NULLsono indicati come tali. Se nessuna istruzione restituisce righe, vedrai invece una breve conferma. - Scegli un limite di tempo di 5, 15 o 60 secondi, utile per le query ricorsive fuori controllo. Interrompi annulla subito una query.
Il motore SQLite è piccolo, ben sotto 1 MB, quindi si carica quasi all'istante. Ripristina esempio riporta lo schema di esempio dei dipendenti, e main.sql scarica il tuo script.
Le tue query vengono eseguite in un Web Worker nel tuo browser. Né l'SQL né i dati vengono caricati o memorizzati sui nostri server. L'editor conserva il tuo ultimo script nella memoria locale del tuo browser, e in nessun altro posto.
Cosa è supportato
Il compilatore esegue SQLite 3 tramite sql.js, la libreria C di SQLite compilata in WebAssembly. È un vero motore di database relazionale, non un emulatore.
- DDL e DML:
CREATE TABLE,CREATE INDEX,CREATE VIEW,INSERT,UPDATE,DELETE, vincoli, chiavi esterne e trigger. - Query: join, sottoquery,
GROUP BY/HAVING,UNION,CASEe common table expression, inclusoWITH RECURSIVE. - Funzioni finestra come
ROW_NUMBER(),RANK(),LAG()e totali progressivi conSUM() OVER (...). - Funzioni integrate per testo (
substr,upper,replace), numeri e date (date,strftime).
Limitazioni:
- Un database in memoria nuovo e vuoto a ogni esecuzione. Le tabelle non sopravvivono tra un'esecuzione e l'altra, quindi tieni le istruzioni
CREATEeINSERTall'inizio dello script. - È SQLite, non MySQL o PostgreSQL. La maggior parte dell'SQL standard funziona, ma le funzioni specifiche di un singolo DBMS, come le stored procedure,
GRANT, la parola chiaveAUTO_INCREMENTdi MySQL o il tipoSERIALdi PostgreSQL, no. - I grandi insiemi di risultati mostrano le prime 1.000 righe, insieme al numero totale di righe.
- Non puoi collegarti a un database esterno né aprire un tuo file
.db.
Guida rapida all'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;
| Operazione | SQL |
|---|---|
| Chiave a numerazione automatica | id INTEGER PRIMARY KEY |
| Filtrare le righe | WHERE price BETWEEN 10 AND 20 |
| Corrispondenza di pattern | WHERE name LIKE 'A%' |
| Concatenare testo | first || ' ' || last |
| Paginare | LIMIT 10 OFFSET 20 |
| Sostituire NULL | COALESCE(phone, 'n/a') |
| Inserire o aggiornare | INSERT ... ON CONFLICT(id) DO UPDATE SET ... |
Consigli
- Usa
sqlite_masterper elencare ciò che hai creato:SELECT name, sql FROM sqlite_master; - Usa
EXPLAIN QUERY PLAN SELECT ...per vedere se una query usa un indice. - SQLite usa una tipizzazione flessibile: una colonna dichiarata
INTEGERpuò comunque contenere testo. Aggiungi vincoliCHECK, o usa tabelleSTRICT, quando vuoi imporre i tipi. - Le chiavi esterne vengono applicate solo dopo
PRAGMA foreign_keys = ON;. - Una query lunga e disordinata? Ripulila con il Formattatore SQL prima di condividerla.
BEGIN; … COMMIT;. Generare dati di prova con una CTE ricorsiva è un modo rapido per riempire una tabella con migliaia di righe per esercitarsi.Domande frequenti
Quale dialetto SQL usa?
SQLite 3. Segue da vicino l'SQL standard, quindi è adatto per imparare SELECT, join, raggruppamenti e funzioni finestra. La sintassi specifica di MySQL, PostgreSQL o SQL Server può richiedere piccole modifiche.
I miei dati vengono salvati?
No. Ogni esecuzione crea un nuovo database in memoria, che viene eliminato non appena l'esecuzione termina. Solo il testo SQL nell'editor viene ricordato, in locale nel tuo browser.
Posso eseguire più query insieme?
Sì. Separale con il punto e virgola. Le istruzioni vengono eseguite in ordine e ciascuna che restituisce righe produce la propria tabella dei risultati.
Posso esercitarmi anche con altri linguaggi?
Sì. Prova il Compilatore Python online, dove funziona anche il modulo sqlite3 integrato di Python, oppure sfoglia tutti i nostri strumenti per sviluppatori.
Aggiornato