So nutzen Sie den Online-SQL-Compiler
- Schreiben Sie Ihr SQL in den Editor. Sie können in einem einzigen Skript Tabellen anlegen (
CREATE TABLE), Daten einfügen (INSERT) und sie abfragen (SELECT). Trennen Sie Anweisungen mit Semikolons. - Klicken Sie auf Ausführen oder drücken Sie Strg + Enter (⌘ + Enter auf dem Mac).
- Jede Anweisung, die Zeilen zurückgibt, erscheint der Reihe nach als eigene Ergebnistabelle, mit der Zeilenanzahl darunter.
NULL-Werte werden als solche gekennzeichnet. Gibt keine Anweisung Zeilen zurück, sehen Sie stattdessen eine kurze Bestätigung. - Wählen Sie ein Zeitlimit von 5, 15 oder 60 Sekunden, das bei außer Kontrolle geratenen rekursiven Abfragen nützlich ist. Stopp bricht eine Abfrage sofort ab.
Die SQLite-Engine ist klein, deutlich unter 1 MB, und lädt daher fast sofort. Beispiel zurücksetzen stellt das Beispielschema mit Mitarbeitern wieder her, und main.sql lädt Ihr Skript herunter.
Ihre Abfragen laufen in einem Web Worker in Ihrem eigenen Browser. Weder das SQL noch die Daten werden auf unsere Server hochgeladen oder dort gespeichert. Der Editor speichert Ihr letztes Skript im lokalen Speicher Ihres Browsers und an keinem anderen Ort.
Was unterstützt wird
Der Compiler führt SQLite 3 über sql.js aus, die zu WebAssembly kompilierte SQLite-C-Bibliothek. Es ist eine echte relationale Datenbank-Engine, kein Emulator.
- DDL und DML:
CREATE TABLE,CREATE INDEX,CREATE VIEW,INSERT,UPDATE,DELETE, Constraints, Fremdschlüssel und Trigger. - Abfragen: Joins, Unterabfragen,
GROUP BY/HAVING,UNION,CASEund Common Table Expressions (CTEs), einschließlichWITH RECURSIVE. - Fensterfunktionen wie
ROW_NUMBER(),RANK(),LAG()und laufende Summen mitSUM() OVER (...). - Eingebaute Funktionen für Text (
substr,upper,replace), Zahlen und Datumswerte (date,strftime).
Einschränkungen:
- Bei jeder Ausführung eine neue, leere In-Memory-Datenbank. Tabellen bleiben zwischen den Ausführungen nicht erhalten, setzen Sie Ihre
CREATE- undINSERT-Anweisungen also an den Anfang des Skripts. - Es ist SQLite, nicht MySQL oder PostgreSQL. Das meiste Standard-SQL funktioniert, herstellerspezifische Funktionen wie Stored Procedures,
GRANT, das MySQL-SchlüsselwortAUTO_INCREMENToder der PostgreSQL-TypSERIALjedoch nicht. - Bei großen Ergebnismengen werden die ersten 1.000 Zeilen angezeigt, zusammen mit der Gesamtzahl der Zeilen.
- Sie können keine Verbindung zu einer externen Datenbank herstellen und keine eigene
.db-Datei öffnen.
SQL-Kurzreferenz
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;
| Aufgabe | SQL |
|---|---|
| Automatisch nummerierter Schlüssel | id INTEGER PRIMARY KEY |
| Zeilen filtern | WHERE price BETWEEN 10 AND 20 |
| Mustersuche | WHERE name LIKE 'A%' |
| Text verketten | first || ' ' || last |
| Seitenweise ausgeben | LIMIT 10 OFFSET 20 |
| NULL ersetzen | COALESCE(phone, 'n/a') |
| Einfügen oder aktualisieren | INSERT ... ON CONFLICT(id) DO UPDATE SET ... |
Tipps
- Mit
sqlite_masterlisten Sie auf, was Sie angelegt haben:SELECT name, sql FROM sqlite_master; - Mit
EXPLAIN QUERY PLAN SELECT ...sehen Sie, ob eine Abfrage einen Index nutzt. - SQLite verwendet flexible Typisierung: Eine als
INTEGERdeklarierte Spalte kann trotzdem Text speichern. Fügen SieCHECK-Constraints hinzu oder verwenden SieSTRICT-Tabellen, wenn Typen erzwungen werden sollen. - Fremdschlüssel werden erst nach
PRAGMA foreign_keys = ON;durchgesetzt. - Lange, unübersichtliche Abfrage? Räumen Sie sie mit dem SQL-Formatter auf, bevor Sie sie teilen.
BEGIN; … COMMIT; zusammen. Testdaten mit einer rekursiven CTE zu erzeugen ist eine schnelle Möglichkeit, eine Tabelle zum Üben mit Tausenden von Zeilen zu füllen.Häufig gestellte Fragen
Welchen SQL-Dialekt verwendet der Compiler?
SQLite 3. Es hält sich eng an Standard-SQL und eignet sich daher gut, um SELECT, Joins, Gruppierung und Fensterfunktionen zu lernen. Syntax, die speziell für MySQL, PostgreSQL oder SQL Server ist, muss eventuell leicht angepasst werden.
Werden meine Daten gespeichert?
Nein. Jede Ausführung erzeugt eine neue In-Memory-Datenbank, die gelöscht wird, sobald die Ausführung endet. Nur der SQL-Text im Editor wird gespeichert, lokal in Ihrem Browser.
Kann ich mehrere Abfragen auf einmal ausführen?
Ja. Trennen Sie sie mit Semikolons. Die Anweisungen laufen der Reihe nach, und jede, die Zeilen zurückgibt, erzeugt ihre eigene Ergebnistabelle.
Kann ich auch mit anderen Sprachen üben?
Ja. Probieren Sie den Online-Python-Compiler, in dem auch das eingebaute Python-Modul sqlite3 funktioniert, oder sehen Sie sich alle unsere Entwickler-Tools an.
Aktualisiert