SQL editor

An editor that speaks IRIS SQL

IRIS-aware code completion, syntax highlighting built for IRIS SQL, formatting, parameterised queries, execution plans and eight export formats.

  • GO-Batches für mehrere Statements
  • F5, F7, F9 führen unterschiedliche Dinge aus
  • Completion, Syntax-Highlighting, Fehler-Unterstreichung
  • Variablen-Deklarationen bei Named User+
  • Export nach Excel, CSV, JSON, Clipboard

Ein SQL-Editor, der bei den Grundlagen versagt, ist kein Editor, den man verwenden sollte. Der SQL-Editor in SQL DATA LENS tut, was man erwartet: mehrere Statements hintereinander mit GO trennen; nur die ausgewählten Zeilen ausführen, wenn etwas ausgewählt ist; Ergebnisse zwischen Ausführungen beibehalten, sodass drei Statements drei Ergebnis-Tabs auf demselben Bildschirm ergeben. Das sind Tabellenstakes, und dieser Abschnitt wird nicht vorgeben, dass sie neue Funktionen sind.

Was neu ist, sind die Dinge, die die Lücken füllen, die jeder andere Klient gelassen hat: Fehler-Unterstreichung, Variablen-Deklarationen außerhalb einer Prozedur und das Binden einer anderen Tastenkombination als F5, sodass man Text ausführen kann, ohne ihn auszuwählen.

SQL-Editor-Panel mit drei Statements, getrennt durch GO, alle drei ausgeführt, das Ergebnis-Tab-Bereich unten zeigt drei Tabs — einer für jedes Statement — das erste Tab ausgewählt mit dem Ergebnis-Grid, das zeigt, Spalten sortierbar und filterbar
Drei Statements, drei Ergebnis-Tabs, eine Ausführung.

GO-Batches für mehrere Statements

Das Schlüsselwort GO teilt ein Skript in Batches, sodass jedes Batch unabhängig ausgeführt wird. Das ist Standard-Verhalten in SSMS und anderen SQL-Clients, die mit Microsoft SQL Server arbeiten, aber weniger üblich bei Tools, die nur PostgreSQL oder MySQL verarbeiten. SQL DATA LENS unterstützt GO über alle Datenbanken, auch diejenigen, die es nicht nativ unterstützen, indem es das Skript vor dem Senden an den Server in separate Statements zerlegt.

Jeder Batch erhält einen eigenen Ergebnis-Tab, sodass das Ausführen von drei Batches drei Tabs erzeugt, und jeder Tab behält sein Ergebnis, bis er erneut ausgeführt wird oder geschlossen wird. Das ist nicht modal — alle drei Ergebnisse sind auf demselben Bildschirm, sodass man nicht hin und her klicken muss, um zu vergleichen, was zwei Abfragen zurückgegeben haben.

F5, F7, F9 führen unterschiedliche Dinge aus

Das häufigste Problem beim Schreiben von SQL ist, dass man sich merken muss, Text auszuwählen, bevor man ihn ausführt, sonst wird das gesamte Skript ausgeführt, nicht nur die Zeile, die man wollte. Die Lösung ist, verschiedenen Aktionen unterschiedliche Tastenkombinationen zu geben:

  • F5 — führt das gesamte Skript aus (alle Batches, getrennt durch GO).
  • F7 — führt den ausgewählten Text aus, wenn etwas ausgewählt ist, sonst die Zeile unter dem Cursor.
  • F9 — führt das Statement unter dem Cursor aus, erkannt durch Semikolons oder GO-Schlüsselwörter, ohne Auswahl erforderlich.

Diese drei Aktionen sind unterschiedliche Arbeitsweisen, und sie unterschiedlichen Tasten zuzuordnen verhindert, dass man das Falsche ausführt, weil man vergessen hat, etwas auszuwählen. Das ist nicht radikal — die meisten IDEs geben „run current line" und „run whole file" unterschiedliche Tastenkombinationen — aber SQL-Clients tun es routinemäßig nicht, und das ist ein Fehler.

Completion und Syntax-Highlighting

Der Editor bietet Code-Completion für Tabellennamen, Spaltennamen, Schlüsselwörter und Schema-Qualifier. Wenn Sie SELECT * FROM tippen, dann einen Teil eines Tabellennamens, vervollständigt der Editor den Namen aus den Tabellen, die im aktuellen Namespace oder Schema existieren. Wenn Sie SELECT column_name FROM table_name tippen, vervollständigt er die Spaltennamen aus der Metadatenstruktur dieser Tabelle.

Syntax-Highlighting unterscheidet Schlüsselwörter, Literale, Kommentare und Identifier nach Farbe, sodass ein versehentlich nicht abgeschlossener String sofort sichtbar ist. Das ist Standard in jeder IDE und sollte Standard in jedem SQL-Client sein. Dass manche Clients heute ohne Highlighting ausgeliefert werden, ist ein Versäumnis, nicht ein Meinungsunterschied.

Fehler-Unterstreichung in Echtzeit

Während Sie tippen, parst der Editor den SQL-Text inkrementell und unterstreicht Fehler, bevor das Statement ausgeführt wird. Tippfehler in Tabellennamen, undefinierte Spalten und Syntax-Fehler werden rot unterstrichen, sodass man nicht fünf Minuten damit verbringt, sich zu wundern, warum eine Abfrage nicht läuft, nur um herauszufinden, dass man SELCT geschrieben hat.

Das ist kein vollständiger Validator — der Editor ruft nicht den Datenbankserver auf, um zu überprüfen, ob eine Tabelle existiert — also werden einige Fehler nur zur Laufzeit gefangen. Aber die Fehler, die gefangen werden, werden gefangen, bevor Sie F5 drücken, was schneller ist als die Ausführung, fehlgeschlagen, lesen Sie die Fehlermeldung, beheben Sie den Tippfehler, Schleife zurück.

SQL-Editor mit einem Statement, das einen Tippfehler in einem Spaltennamen enthält, die fehlerhafte Spalte rot unterstrichen, ein Tooltip zeigt die Fehlermeldung beim Hover
Fehler rot unterstrichen, bevor man F5 drückt.

Variablen-Deklarationen in Named User und höher

Die meisten SQL-Clients erlauben nur Variablen innerhalb einer gespeicherten Prozedur oder Funktion, nicht in Ad-hoc-Abfragen. Das ist eine unnötige Einschränkung: Wenn Sie eine Abfrage haben, die denselben Wert zehnmal wiederholt, sollten Sie in der Lage sein, diesen Wert einmal zu deklarieren, sodass das Ändern des Werts nicht bedeutet, zehn Vorkommen zu bearbeiten.

In den Editionen Named User, Team und Enterprise unterstützt der SQL-Editor Variablen-Deklarationen in Ad-hoc-Abfragen. Sie schreiben:

DECLARE @minAmount NUMERIC = 1000;

SELECT * FROM Invoice WHERE Amount > @minAmount;

und die Variable wird aufgelöst, bevor die Abfrage an den Server gesendet wird. Das ist keine serverseitige Ausführung — SQL DATA LENS ersetzt den Wert clientseitig, also funktioniert es über alle Datenbanken, auch diejenigen, die Variablen nicht nativ unterstützen.

Export nach Excel, CSV, JSON, Clipboard

Jedes Ergebnis-Grid kann nach Excel exportiert werden (ein .xlsx-Workbook mit einer Tabelle), nach CSV, nach JSON oder in die Zwischenablage als tabulatorgetrennte Werte. Die ersten beiden erstellen eine Datei; die dritte öffnet Excel mit den Daten bereits eingefügt; die vierte kopiert die Zeilen, sodass Sie sie in ein E-Mail, ein Dokument oder ein anderes Programm einfügen können.

Der Excel-Export behält die Spaltenbreiten, Datentypen und Überschriften aus dem Grid bei, sodass eine numerische Spalte als Zahl exportiert wird, nicht als Text. Das macht den Export für Pivot-Tabellen und Diagramme verwendbar, ohne die Spaltentypen nach dem Import manuell zu ändern.

Max-Rows-Limit, während man noch schreibt

Es gibt ein Max-Rows-Limit, das auf dem ersten Panel konfigurierbar ist, und es ist der wichtigste Performance-Knopf im Editor. Eine Abfrage, die eine Million Zeilen zurückgibt, sollte nicht versuchen, eine Million Zeilen in einem Grid zu rendern, bis bestätigt ist, dass das ist, was Sie wollten. Setzen Sie das Limit auf fünfzig, während Sie noch herausfinden, was das Statement sagen soll, und entfernen Sie das Limit, wenn Sie bereit sind, das vollständige Ergebnis zu sehen.

Das Limit wird serverseitig angewendet, wo das System es unterstützt (IRIS, SQL Server, PostgreSQL, MySQL und andere), was bedeutet, dass der Server nicht alle Zeilen verarbeiten und dann die ersten fünfzig senden muss — er stoppt bei fünfzig und sendet diese. Für Systeme, die keine serverseitigen Limits unterstützen, wird das Limit clientseitig angewendet, nach dem Lesen, aber das ist immer noch besser als zu versuchen, unbegrenzt viele Zeilen zu rendern.

Statements speichern und laden

Der Editor hat einen eingebauten Script Manager, der SQL-Statements speichert, kategorisiert und wieder abruft, sodass eine nützliche Abfrage, die man geschrieben hat, nicht im Clipboard-Verlauf verloren geht. Skripte können pro Namespace, pro Server oder global gespeichert werden, und sie können in Ordnern organisiert werden. Das ist kein volles VCS — es ist eine geordnete Ablage für wiederverwendbare Statements.

Der SQL-Editor ist in jeder Edition verfügbar, mit Variablen-Deklarationen ab Named User. Laden Sie SQL DATA LENS herunter und führen Sie Ihre erste Abfrage mit F7 aus, keine Auswahl erforderlich.

See your IRIS data the way it actually is

Download, unzip, connect. Your first namespace is on screen in about three minutes.

Windows 10, 11 and Windows Server (64-bit) · ~140 MB · version 3.24 · full 30-day Pro trial included