Skip to content

Visueller Abfrage-Editor

Er baut ein SELECT per Ziehen statt per Tippen und zeigt dabei laufend das SQL. Es gibt drei Wege hinein:

  • Rechtsklick auf eine Datenbank in der Seitenleiste und Visual Query Builder.
  • Abfrage-Designer in der Hauptsymbolleiste, neben dem Profiler — er öffnet sich mit der Verbindung und Datenbank, in der Sie ohnehin gerade arbeiten.
  • Abfrage-Designer in der Symbolleiste des SQL-Editors — dasselbe, nur lädt er das SQL, das bereits im Editor steht, auf die Fläche.

Eine Abfrage bauen

  1. Tabellen hinzufügen — klicken Sie neben einer Tabelle, um sie auf die Fläche zu holen.
  2. Verbinden — ziehen Sie von einer Spalte der einen Tabelle zu einer Spalte der anderen. NabuSQL ergänzt die Join-Bedingung.
  3. Join-Typ wählen — jeder Join ist beschriftet und kann INNER, LEFT, RIGHT oder FULL sein.
  4. Spalten wählen — haken Sie die an, die im Ergebnis stehen sollen.
  5. Filtern — ergänzen Sie WHERE-Bedingungen mit den Operatoren =, !=, >, <, >=, <=, LIKE, IS NULL, IS NOT NULL, IN.
  6. Gruppieren und sortieren — setzen Sie GROUP BY- und ORDER BY-Spalten.

Das erzeugte SQL aktualisiert sich während der Arbeit.

Verbindung und Datenbank wählen

Die Auswahlfelder für Verbindung und Datenbank sitzen rechts in der Symbolleiste des Editors, Sie können ihn also auf ein anderes Ziel richten, ohne ihn zu schließen. Tabellen gehören zu genau einer Datenbank, deshalb leert ein Wechsel die Arbeitsfläche — NabuSQL fragt vorher nach, wenn es etwas zu verlieren gibt.

Beim Wechsel auf einen anderen Tab und zurück bleibt der Zustand erhalten: Anordnung auf der Fläche, Joins, Bedingungen und bereits ausgeführte Ergebnisse sind noch da.

Die Abfrage speichern

Abfrage speichern fragt nach einem Namen und legt das Ergebnis ab wie jede andere Abfrage: Sie erscheint in der Seitenleiste unter Verbindung → Datenbank → Abfragen und lässt sich dort öffnen, ausführen und bearbeiten. Speichern unter einem Namen, den es auf derselben Verbindung und Datenbank schon gibt, aktualisiert diese Abfrage, statt eine zweite anzulegen.

Hat die Verbindung einen Abfrageordner konfiguriert, wird die Abfrage dort zusätzlich als .sql-Datei geschrieben — siehe Verbindungen und Abfragen übertragen. Die Datei wird zuerst geschrieben: schlägt das fehl, wird nichts gespeichert, und Sie bekommen den Fehler statt einer falschen Bestätigung.

Nach dem Speichern übernimmt der Tab den Namen der Abfrage, und der nächste Speichervorgang schlägt denselben Namen wieder vor.

Vorhandenes SQL im Editor öffnen

Die Schaltfläche Abfrage-Designer im SQL-Editor schickt den Text des Editors — oder nur die Auswahl, wenn Sie eine haben — in einen neuen Designer-Tab, und dieser liest ihn zurück in Tabellen, Joins, Spalten, Bedingungen, Gruppierung und Sortierung. Tabellen-Aliase werden zu den Tabellen aufgelöst, für die sie stehen.

Er versteht dieselbe Teilmenge, die er auch schreibt: ein einzelnes SELECT mit Joins, WHERE, GROUP BY, ORDER BY und einer Zeilenbegrenzung. Alles darüber hinaus — Unterabfragen, berechnete Spalten und Funktionsaufrufe, HAVING, UNION, NOT IN / NOT LIKE, Join-Bedingungen mit mehr als einem Vergleich, OFFSET — bleibt weg und wird in einer Warnleiste über der Fläche benannt; so ist das, was Sie sehen, nie stillschweigend eine andere Abfrage als die, mit der Sie angefangen haben. Lässt sich gar nichts lesen, bekommen Sie eine Meldung, und das SQL bleibt unberührt in dem Editor-Tab, aus dem Sie kamen.

Das erzeugte SQL

Bezeichner werden so gequotet, wie Ihr Server es erwartet: Backticks für MySQL und MariaDB, doppelte Anführungszeichen für PostgreSQL und SQLite, eckige Klammern für SQL Server. Schema-qualifizierte Namen werden Teil für Teil gequotet, aus dbo.accessory wird also [dbo].[accessory].

Die Zeilenbegrenzung folgt derselben Regel — SQL Server bekommt SELECT TOP n, alles andere LIMIT n.

Werte in Bedingungen werden escaped, das Apostroph in O'Brien wird also verdoppelt, statt die Abfrage zu zerbrechen. Numerische Spalten werden mit Zahlen ohne Anführungszeichen verglichen, worauf PostgreSQL besteht. In einer IN-Bedingung tippen Sie eine kommagetrennte Liste; was Sie selbst in Anführungszeichen setzen, bleibt so stehen.

Das Ergebnis weiterverwenden

Die Schaltfläche ▶ führt die Abfrage aus und zeigt die Zeilen unter der Fläche. Für alles Weitere übertragen Sie das SQL in einen SQL-Editor-Tab, um es zu verfeinern, oder fügen Sie es in eine Sichtdefinition ein — siehe Sichten.

Wofür er gut ist

Der Editor spielt seine Stärke aus, wenn Sie ein Schema erkunden, das Sie nicht gut kennen: Sie sehen, welche Spalten zu welchen passen, und erhalten ein korrektes SELECT über mehrere Tabellen, ohne jeden Fremdschlüssel von Hand nachzuschlagen.

Er erzeugt schlichtes, lesbares SQL — es gibt kein proprietäres Format, in dem Sie feststecken, und nichts hindert Sie daran, das Ergebnis hinterher von Hand zu überarbeiten.

Grenzen

Er baut SELECT-Anweisungen. Unterabfragen, Fensterfunktionen, UNION, CTEs, INSERT/UPDATE/DELETE und alles Systemspezifische gehören in den SQL-Editor. FULL JOIN wird angeboten, aber MySQL und MariaDB unterstützen ihn nicht — diese Abfrage weist der Server zurück, nicht NabuSQL.

Wenn Sie die Abfrage lieber in Worten beschreiben als sie zu zeichnen, ist der KI-Assistent der andere Weg zum selben Ziel.