SQL-Abfrage erstellen
SQL-Abfrage erstellen per Formular: Spalten, JOIN, WHERE-Bedingungen, GROUP BY, ORDER BY und LIMIT eintragen und eine fertige SELECT-Abfrage für Ihre Datenbank erhalten.
Bei IN mehrere Werte mit Komma trennen, bei BETWEEN zwei Werte mit Komma. Zahlen bleiben ohne Anführungszeichen.
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
SELECT-Abfrage ohne Syntaxfehler
Mit dem Generator können Sie eine SQL-Abfrage erstellen, indem Sie Tabelle, Spalten und Bedingungen in ein Formular eintragen. Der SQL Query Generator setzt daraus eine vollständige SELECT-Abfrage in der richtigen Reihenfolge der Klauseln zusammen: SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY und zuletzt die Begrenzung der Zeilen. Textwerte werden in einfache Anführungszeichen gesetzt und enthaltene Apostrophe verdoppelt, Zahlen, NULL, TRUE und FALSE bleiben unverändert.
Jede WHERE-Bedingung besteht aus Spalte, Operator und Wert und wird mit UND oder ODER an die vorige angehängt. Achtung: AND bindet stärker als OR. a = 1 OR b = 2 AND c = 3 bedeutet also a = 1 OR (b = 2 AND c = 3); mischen Sie beide, setzt der Generator die UND-Gruppen deshalb in Klammern, damit die Abfrage so gelesen wird, wie sie im Formular steht. Bei einem SQL JOIN verknüpft die ON-Bedingung beide Tabellen, typischerweise Primärschlüssel und Fremdschlüssel. Ein LEFT JOIN behält alle Zeilen der linken Tabelle, auch ohne Treffer rechts.
Die Dialekte unterscheiden sich vor allem bei Bezeichnern und der Zeilenbegrenzung: MySQL quotet mit Backticks, PostgreSQL, SQLite und Standard-SQL mit doppelten Anführungszeichen, SQL Server mit eckigen Klammern. LIMIT … OFFSET gibt es in MySQL, PostgreSQL und SQLite; SQL Server nutzt TOP oder OFFSET … FETCH, das ein ORDER BY verlangt. Für Anwendungscode schalten Sie „Platzhalter statt Werte“ ein: Die Werte werden dann getrennt übergeben, was SQL-Injection verhindert. Zum Formatieren fertiger Abfragen eignet sich SQL formatieren.
Anleitung: SQL-Abfrage erstellen in 5 Schritten
- Unter „Tabelle“ und „Spalten“ eintragen, woraus gelesen wird; leer lassen ergibt
SELECT *. - Bei Bedarf „JOIN-Art“, „JOIN-Tabelle“ und die Verknüpfung unter „ON-Bedingung“ angeben.
- Mit „Bedingung hinzufügen“ WHERE-Zeilen anlegen: Spalte, Operator, Wert und Verknüpfung UND/ODER wählen.
- GROUP BY, HAVING, ORDER BY, Richtung und LIMIT festlegen und unter „Dialekt“ die Datenbank wählen.
- Die fertige Abfrage mit „Kopieren“ übernehmen; mit „Platzhalter statt Werte“ entsteht ein Prepared Statement.
Typische Anwendungsfälle
- Schnell eine Abfrage für ein Admin-Werkzeug oder eine Auswertung zusammenstellen, ohne die Syntax nachzuschlagen.
- SQL lernen: Sehen, wie sich JOIN-Art, Bedingungen und Sortierung auf die Abfrage auswirken.
- Zwischen Datenbanken wechseln: Dieselbe Abfrage mit
LIMITfür MySQL oderTOPundOFFSET … FETCHfür SQL Server erzeugen.
Häufige Fragen
Wie werden Texte in der Abfrage maskiert?
Textwerte stehen in einfachen Anführungszeichen, ein Apostroph im Wert wird verdoppelt: O'Brien wird zu 'O''Brien'. Für Werte aus Benutzereingaben sollten Sie trotzdem Prepared Statements verwenden.
Was ist der Unterschied zwischen WHERE und HAVING?
WHERE filtert einzelne Zeilen vor dem Gruppieren, HAVING filtert die Gruppen danach. Bedingungen auf Aggregatfunktionen wie COUNT(*) > 5 gehören deshalb in HAVING.
Wie suche ich mit Platzhaltern?
Wählen Sie den Operator LIKE. Das Prozentzeichen steht für beliebig viele Zeichen, der Unterstrich für genau eines: Ber% findet Berlin und Bern.
Wie frage ich nach leeren Werten?
Mit den Operatoren IS NULL und IS NOT NULL. Ein Vergleich wie = NULL liefert in SQL nie einen Treffer, weil NULL mit nichts gleich ist.
Welche Platzhalter nutzt das Prepared Statement?
MySQL und SQLite verwenden ?, PostgreSQL $1, $2 usw. und SQL Server benannte Parameter wie @p1. Die zugehörigen Werte listet das Werkzeug unter der Abfrage auf.
Warum steht bei SQL Server ORDER BY (SELECT NULL) in der Abfrage?
OFFSET … FETCH ist in SQL Server nur mit ORDER BY erlaubt. Ohne angegebene Sortierung setzt der Generator deshalb diesen Platzhalter ein; die Reihenfolge der Zeilen ist dann nicht festgelegt.
Wie frage ich mehrere Werte auf einmal ab?
Wählen Sie den Operator IN und tragen Sie die Werte mit Komma getrennt ein, etwa Berlin, Hamburg, Köln. Der Generator setzt daraus IN ('Berlin', 'Hamburg', 'Köln').
Das könnte auch helfen
Cron-Ausdruck erklären
Crontab-Zeilen mit 5 oder 6 Feldern auf Deutsch erklärt, mit den nächsten 10 Ausführungen.
ÖffnenCron-Generator
Zeitplan im Formular wählen und die fertige Crontab-Zeile kopieren.
ÖffnenUnix-Zeitstempel umrechnen
Timestamp in Datum und zurück, Sekunden und Millisekunden erkannt, UTC und Berlin.
ÖffnenUUID-Generator
UUID v4 und v7 erzeugen, bis zu 1.000 auf einmal, und vorhandene UUIDs prüfen.
ÖffnenULID-Generator
Sortierbare IDs in Crockford Base32 erzeugen, dekodieren und in UUID umwandeln.
ÖffnenTexte vergleichen (Diff)
Unterschiede zwischen zwei Texten zeilen-, wort- oder zeichenweise finden.
Öffnen