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.

WHERE-Bedingungen

Bei IN mehrere Werte mit Komma trennen, bei BETWEEN zwei Werte mit Komma. Zahlen bleiben ohne Anführungszeichen.

SQL-Abfrage

    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

    1. Unter „Tabelle“ und „Spalten“ eintragen, woraus gelesen wird; leer lassen ergibt SELECT *.
    2. Bei Bedarf „JOIN-Art“, „JOIN-Tabelle“ und die Verknüpfung unter „ON-Bedingung“ angeben.
    3. Mit „Bedingung hinzufügen“ WHERE-Zeilen anlegen: Spalte, Operator, Wert und Verknüpfung UND/ODER wählen.
    4. GROUP BY, HAVING, ORDER BY, Richtung und LIMIT festlegen und unter „Dialekt“ die Datenbank wählen.
    5. 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 LIMIT für MySQL oder TOP und OFFSET … FETCH für SQL Server erzeugen.
    Fragen

    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').

    Weitere Werkzeuge

    Das könnte auch helfen

    Alle 558 Werkzeuge