SQL online - IDE, Editor, Compiler, Interpreter

RSS

SQL online üben: Tabellen erstellen, Daten einfügen und Abfragen auf einer echten SQLite-Datenbank im Browser ausführen. Die Ergebnisse erscheinen als Tabellen.

SQLite 3 (sql.js) · Läuft in Ihrem Browser – Ihr Code erreicht nie unsere Server.
main.sqlSQL
Ausgabe

            
        
Ctrl/⌘ + Enter zum Ausführen

Funktionen des Online-SQL-Compilers (IDE, Editor & Interpreter)

Schreiben, ausführen und testen Sie SQL-Code kostenlos online. Diese Seite ist Online-SQL-IDE, Code-Editor, Compiler und Interpreter in einem: Code eingeben, auf „Ausführen“ klicken und sofort die Ausgabe sehen. Alles läuft in Ihrem Browser – nichts zu installieren, kein Konto nötig.

  • Code sofort ausführen: SQLite 3 (sql.js), Ausgabe nach dem ersten Laden in weniger als einer Sekunde.
  • Code-Editor: Syntaxhervorhebung, Zeilennummern, Klammerzuordnung und automatisches Schließen von Klammern.
  • Klare Fehlermeldungen: Fehlermeldungen und Warnungen erscheinen im Ausgabebereich – genau wie auf Ihrem eigenen Computer.
  • Vollbild: Ctrl/⌘ + Shift + F, anpassbare Schriftgröße, Layout nebeneinander oder untereinander und skalierbare Bereiche.
  • Automatisches Speichern: Ihr Code bleibt in Ihrem Browser gespeichert; laden Sie ihn als main.sql herunter oder kopieren Sie ihn mit einem Klick.
  • Gefahrlos experimentieren: Ein Zeitlimit und eine Stopp-Schaltfläche beenden Endlosschleifen.
  • Privat: Die SQL-Laufzeitumgebung läuft auf Ihrem Gerät, Ihr Code wird also nie hochgeladen.
  • Dunkelmodus und Tastenkürzel: Ctrl/⌘ + Enter führt den Code aus.
  • Kostenlos: keine Anmeldung, keine Nutzungslimits.

Weitere Programmiersprachen lernen

So nutzen Sie den Online-SQL-Compiler

  1. 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.
  2. Klicken Sie auf Ausführen oder drücken Sie Strg + Enter (⌘ + Enter auf dem Mac).
  3. 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.
  4. 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, CASE und Common Table Expressions (CTEs), einschließlich WITH RECURSIVE.
  • Fensterfunktionen wie ROW_NUMBER(), RANK(), LAG() und laufende Summen mit SUM() 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- und INSERT-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üsselwort AUTO_INCREMENT oder der PostgreSQL-Typ SERIAL jedoch 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;
AufgabeSQL
Automatisch nummerierter Schlüsselid INTEGER PRIMARY KEY
Zeilen filternWHERE price BETWEEN 10 AND 20
MustersucheWHERE name LIKE 'A%'
Text verkettenfirst || ' ' || last
Seitenweise ausgebenLIMIT 10 OFFSET 20
NULL ersetzenCOALESCE(phone, 'n/a')
Einfügen oder aktualisierenINSERT ... ON CONFLICT(id) DO UPDATE SET ...

Tipps

  • Mit sqlite_master listen 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 INTEGER deklarierte Spalte kann trotzdem Text speichern. Fügen Sie CHECK-Constraints hinzu oder verwenden Sie STRICT-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.
Tipp: Fassen Sie wiederholte Inserts in 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

In die Zwischenablage kopiert