Diese Seite beschreibt Calíope 1.5, die Version, die ich gerade baue. Die 1.4 ist im App Store für Mac, iPad, iPhone, Apple Watch, Apple TV und Apple Vision Pro. Das Changelog sagt, in welcher Version jede Funktion kam.

Fügt jedem Thema einen Button „In Calíope öffnen“ hinzu. Funktioniert nur mit installierter App.

SQLite-Editor

SQLite-Editor

Öffne und bearbeite lokale SQLite-Dateien ohne Server.

Wo es zu finden ist: Workspace › Werkzeuge › SQLite-Editor

Der SQLite-Editor ist ein eigenständiges Werkzeug für lokale .sqlite/.db-Dateien, ähnlich wie DB Browser for SQLite. Er hat vier Bereiche: Struktur, Daten, SQL ausführen und Pragmas, und funktioniert auch ohne Serververbindung.

Calíope öffnet unverschlüsselte SQLite-Datenbanken (SQLCipher wird nicht unterstützt).

Stichwörter: sqlite, db, lokal, datenbank, datei

Datenbank öffnen oder erstellen

Öffne eine vorhandene SQLite-Datei oder erstelle eine neue.

Wo es zu finden ist: Workspace › Werkzeuge › SQLite-Editor

Verwende Öffnen…, um eine vorhandene .sqlite/.db-Datei zu wählen, oder Neue Datenbank…, um eine leere zu erstellen. Zuletzt verwendete Dateien erscheinen auf dem Startbildschirm. Ein Schreibgeschützt-Abzeichen zeigt an, wenn eine Datei nicht geändert werden kann.

Stichwörter: öffnen, erstellen, neu, zuletzt, datei

Struktur erkunden und entwerfen

Durchsuche Tabellen, Sichten, Indizes und Trigger und erstelle sie.

Der Bereich Struktur zeigt den Schemabaum mit den Spalten und dem DDL jedes Objekts. Verwende Neu, um Tabellen, Indizes oder Sichten zu erstellen, Spalte hinzufügen oder Tabelle umbenennen für die ausgewählte Tabelle und Löschen, um ein Objekt zu entfernen.

Stichwörter: struktur, tabelle, index, sicht, trigger, erstellen, ddl, schema

Daten durchsuchen und bearbeiten

Zeilen anzeigen, filtern, sortieren und bearbeiten.

Der Bereich Daten zeigt die Zeilen einer Tabelle seitenweise, mit dem Zähler und den Pfeilen rechts in der Leiste. Wie viele Zeilen eine Seite bringt, entscheidest du unter Einstellungen › Text-Editor › Ergebnisse › Zeilen pro Seite: dieselbe Einstellung, die das Raster von SQL ausführen und das des SQL-Editors verwenden. Sortiere durch Drücken einer Spaltenüberschrift —drücke sie erneut, um die Reihenfolge umzukehren—, schränke Spalte für Spalte mit Filter ein oder tippe im Suchfeld, um in allen zugleich zu suchen; in beiden Fällen wird der Filter mit Enter angewendet. Die Auswahl Tabelle listet die Tabellen der Datei, und nicht alle lassen sich bearbeiten: bei einer WITHOUT ROWID-Tabelle, oder bei jeder, wenn die Datei schreibgeschützt geöffnet wurde, sagt die Leiste, dass das Objekt nicht bearbeitet werden kann, statt die Schaltflächen anzubieten.

Eine Zelle bearbeiten

macOS: Doppelklick darauf. iPad: ein einzelnes Tippen.

Der Wert wird im Raster selbst geschrieben. Enter bestätigt, und die Zelle zu verlassen —eine andere antippen oder den Fokus verlieren— bestätigt ebenfalls; Esc bricht ab und lässt den vorherigen Wert stehen (auf dem iPad mit angeschlossener Tastatur).

Der erweiterte Editor

Was nicht in eine Zeile passt, wird in einem eigenen Blatt geschrieben. Es öffnet sich mit der Schaltfläche ⋯ der Zelle —macOS: wenn der Zeiger darüber steht; iPad: in den Zellen der ausgewählten Zeile, die du durch Antippen ihrer Nummer markierst— oder mit Erweiterter Editor… im Kontextmenü (Rechtsklick auf macOS, gedrückt halten auf dem iPad). Dort wird derselbe Wert als Text, als JSON —mit einer Schaltfläche, die es formatiert, und ohne ungültiges JSON zu übernehmen—, hexadezimal geschrieben oder als Bild angezeigt, wenn die Bytes eines sind —und dieses Bild lässt sich von 100 % bis 800 % vergrößern, per Aufziehen, per Mausrad oder mit den Schaltflächen am Fuß—; und diese Bytes werden aus einer Datei importiert und in eine andere exportiert. Eine Zelle, die bereits binäre Daten enthält, öffnet dieses Blatt direkt, ohne den Umweg über das Feld im Raster.

Eine Zelle auf NULL lassen

Im Kontextmenü der Zelle Auf NULL setzen, ohne dass sich etwas öffnet; im erweiterten Editor gibt es das auch als Schalter. Eine Zelle ohne Wert wird kursiv als NULL dargestellt. Achtung: den Inhalt im Raster zu löschen und zu bestätigen schreibt die leere Zeichenkette, und das ist nicht dasselbe wie NULL.

Zeilen hinzufügen und löschen

Zeile hinzufügen öffnet ein Formular mit einer Zeile je Spalte, ihrem Typ und ob sie erforderlich ist. Die Spalten, die die Tabelle allein füllen kann —die mit einem Standardwert und der INTEGER-Primärschlüssel— sind von vornherein markiert, damit die Datenbank sie schreibt: entferne die Markierung, wenn du den Wert lieber selbst setzt. Ein leer gelassenes Feld wird als NULL gespeichert, und Einfügen bleibt deaktiviert, solange eine erforderliche Spalte keinen Wert hat —der Hinweis daneben nennt welche—. Beim Bestätigen wird eine einzige INSERT-Anweisung abgesetzt, die nur die Spalten mit Wert nennt. Zum Löschen wähle die Zeile über ihre Nummer und nutze Zeile löschen oder das Kontextmenü einer ihrer Zellen.

Nichts davon berührt die Datei, bis du Änderungen speichern drückst: das Bearbeitete bleibt in einer offenen Transaktion, die Änderungen verwerfen vollständig zurücknimmt.

Stichwörter: daten, zeilen, bearbeiten, filtern, sortieren, suchen, zelle, blob, null, einfügen, neue zeile, löschen, json, hex, bild

SQL schreiben und ausführen

Syntaxhervorhebung, Autovervollständigung und ein Ergebnisraster mit Zeilenlimit.

Der Bereich SQL ausführen verwendet dasselbe Textfeld und dasselbe Ergebnisraster wie der SQL-Editor für Server, aber auf der geöffneten Datei und ohne jede Verbindung.

Schreiben und ausführen

Der Text ist hervorgehoben: Schlüsselwörter, Zeichenketten, Zahlen und Kommentare, jedes in seiner Farbe. Drücke Ausführen oder ⌘↩ aus dem Text heraus, und das ganze Skript läuft. Was darunter gezeichnet wird, ist das Ergebnis der letzten Anweisung, die Zeilen geliefert hat; hat keine welche geliefert, wird gesagt, wie viele Zeilen betroffen waren. Ein Fehler hält das Skript bei dieser Anweisung an und zeigt die Meldung der Engine unverändert.

Was in die Datei schreibt —ein INSERT, ein UPDATE, ein CREATE TABLE— bleibt ausstehend, genau wie eine Bearbeitung im Bereich Daten: Bis Änderungen speichern wird die Datei nicht angefasst, und Änderungen verwerfen macht alles rückgängig.

Autovervollständigung

Das Vorschlagsfeld bringt die SQL-Schlüsselwörter und die Tabellen der geöffneten Datei mit ihren Spalten —alle, nicht nur die der in Struktur ausgewählten Tabelle— und ist nach jeder Schemaänderung aktuell.

Es öffnet sich von Hand und erscheint beim Tippen nie von selbst. Unter macOS mit ⌥Esc und mindestens dem Anfang des Wortes: Die Liste kommt aus diesem Präfix, Schlüsselwörter zuerst und die Namen der Datei danach, und der Name wird unverändert eingefügt. Auf dem iPad mit der Taste Autovervollständigen in der Kopfzeile des Bereichs, die das Feld jederzeit öffnet und keine Tastatur braucht; dort schreibt das Annehmen einer Tabelle oder Spalte sie zwischen Backticks —`meine_tabelle`—, die SQLite genauso akzeptiert wie doppelte Anführungszeichen.

Schlüsselwörter und Funktionshilfe sind die des allgemeinen SQL von Calíope, nicht die von SQLite: SQLite-eigene Funktionen wie julianday() oder printf() laufen problemlos, werden aber nicht vorgeschlagen.

Das Ergebnisraster

Die Zeilen gehen seitenweise, und wie viele auf eine Seite passen, entscheidest du unter Einstellungen › Text-Editor › Ergebnisse › Zeilen pro Seite: dieselbe Einstellung, die der Bereich Daten und der SQL-Editor verwenden.

Unter macOS kannst du durch Drücken einer Spaltenüberschrift sortieren —die Reihenfolge ist die des Clients und erfasst alle geholten Zeilen, nicht nur die Seite vor dir—, die Breite einer Spalte durch Ziehen ihres Randes ändern, Spalten über die Überschrift ausblenden oder umordnen, mehrere Zeilen mit ⇧ oder ⌘ wählen und sie mit ⌘C kopieren, was sie als TSV mit den Spaltennamen voran ablegt. Auf dem iPad blätterst du mit den Tasten am Fuß, und die Spalten messen sich selbst.

In beiden Fällen bringt das Ziehen einer Zeile aus der App sie als Tabelle in eine andere, und das Kontextmenü einer Zelle —Rechtsklick unter macOS, langes Drücken auf dem iPad— kopiert ihren Wert, zeigt ihn ganz und exportiert die Zeile als CSV.

Was hier zu sehen ist, wird nicht bearbeitet: Zum Ändern eines Werts gibt es den Bereich Daten.

Das Zeilenlimit

Ein großes SELECT wird nicht ganz geholt: Es wird beim Einstellungen › Text-Editor › Ergebnisse › Zeilenlimit abgeschnitten, demselben Limit, das der SQL-Editor verwendet. Wenn es schneidet, sagt das Raster es unter den Zeilen und bietet Alle laden an, was die Abfrage ohne Limit erneut ausführt. Mit dem Limit auf null wird nie geschnitten.

Funktionseinträge

Fährst du auf macOS mit dem Zeiger über eine Funktion oder setzt du auf dem iPad den Textcursor darauf, erscheint ihr Eintrag, der von SQLite: Syntax, Rückgabe, Parameter und ein Beispiel. Das Thema Kontexthilfe für SQL-Funktionen erklärt es.

Stichwörter: ausführen, sql, syntaxhervorhebung, autovervollständigung, vorschläge, raster, ergebnisse, sortieren, kopieren, ziehen, limit, zeilen, seite

Änderungen speichern und verwerfen

Änderungen bleiben ausstehend, bis du sie speicherst.

Änderungen werden in einer ausstehenden Transaktion gruppiert. Ein bernsteinfarbener Punkt kennzeichnet nicht gespeicherte Änderungen. Verwende Änderungen speichern zum Bestätigen oder Änderungen verwerfen zum Verwerfen. Das Schließen mit ausstehenden Änderungen erfordert eine Bestätigung.

Stichwörter: speichern, verwerfen, bestätigen, transaktion, änderungen

Importieren und exportieren

CSV importieren und als CSV, JSON oder SQL exportieren.

Über Import / Export kannst du eine CSV-Datei importieren —sie wird zu einer Tabelle mit dem Namen der Datei und Textspalten, oder ihre Zeilen werden angehängt, wenn es diese Tabelle schon gibt—, die in Daten geöffnete Tabelle als CSV oder JSON exportieren oder die ganze Datenbank als SQL-Dump (Schema und Daten) exportieren. Ein Import bleibt wie jede Änderung offen, bis du Änderungen speichern drückst.

Stichwörter: importieren, exportieren, csv, json, sql, dump, backup

Pragmas und Wartung

Ändere die Pragmas der Datei, prüfe und verdichte sie.

Der Bereich Pragmas zeigt die Einstellungen der Datei. Die unter Bearbeitbar —Fremdschlüssel, Auto-vacuum und die übrigen— ändern sich sofort, die numerischen mit Anwenden. Sie wirken unmittelbar, außerhalb der offenen Transaktion, und sind deshalb gesperrt, solange es ungespeicherte Änderungen gibt: erst speichern oder verwerfen. Manche, wie Auto-vacuum, wirken erst nach einem VACUUM.

Wartung prüft die Datei —Integrität prüfen, Fremdschlüssel prüfen— oder räumt sie auf —VACUUM, ANALYZE, REINDEX—, und die Antwort der Engine erscheint unter den Schaltflächen. Die übrigen Pragmas stehen unter Schreibgeschützt mit ihrem aktuellen Wert.

Stichwörter: pragma, pragmas, wartung, integrität, vacuum, analyze, reindex, fremdschlüssel