Diese Seite beschreibt Calíope 1.7, die Version, die ich gerade baue. Die 1.6 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.
Erstelle oder ändere Tabellen mit einer visuellen Oberfläche, ohne DDL manuell zu schreiben.
Wo es zu finden ist: Kataloge › Rechtsklick › Neue Tabelle / Tabelle entwerfen
Der Tabellen-Builder wird über Kataloge geöffnet: Klick in der Symbolleiste auf Neue Tabelle oder klick mit der rechten Maustaste auf eine bestehende Tabelle und wähle Tabelle entwerfen. Kataloge öffnet sich im Nur-Lesen-Modus, schalte ihn also zuerst aus. Er ist auf macOS, iPad, iPhone und Apple Vision Pro verfügbar und öffnet sich auf allen vieren als persistenter Tab des Workspace: Du kannst zu einem anderen Tab wechseln (zum Beispiel Kataloge, um eine andere Tabelle nachzuschlagen) und zurückkehren, ohne die Arbeit zu verlieren. Jede Tabelle öffnet sich in einem eigenen Tab.
Der Editor hat seine Tabs: Spalten, Indizes, Fremdschlüssel —wo die Engine sie hat— und Optionen. Darunter zeigt die SQL-Vorschau das CREATE TABLE —oder, bei einer bestehenden Tabelle, das ALTER TABLE—, das deine Änderungen ergeben, und folgt jeder Bearbeitung; Kopieren legt es in die Zwischenablage. Wenn du fertig bist, klick auf Tabelle erstellen (oder Änderungen anwenden bei einer bestehenden Tabelle), um es auf dem Server auszuführen. Zurücksetzen verwirft deine Änderungen: zurück zu den Standardwerten bei einer neuen Tabelle oder zur Definition des Servers bei einer bestehenden.
Füge Spalten der Tabelle hinzu, bearbeite und ordne sie neu.
Wo es zu finden ist: Tabellen-Builder › Tab Spalten
Klick im Tab Spalten auf +, um eine Spalte hinzuzufügen; die Schaltflächen daneben duplizieren die ausgewählte Spalte, verschieben sie nach oben oder unten und löschen sie. Klick auf eine Spalte in der Liste, um sie darunter zu bearbeiten: den Namen, den Datentyp —die Liste ist die der Engine des Servers—, die Länge, wenn der Typ eine hat (zum Beispiel 500 für VARCHAR), und die Einschränkungen Erlaubt NULL, Primärschlüssel (PRIMARY KEY) und Eindeutig (UNIQUE), dazu die, die nur manche Typen haben. Es erscheinen nur die, die der gewählte Typ unterstützt, und eine Spalte als Primärschlüssel zu markieren schaltet NULL aus.
MySQLMariaDBAurora
Bei Ganzzahltypen nummeriert Auto-Increment (AUTO_INCREMENT) die Zeilen selbst, und Vorzeichenlos (UNSIGNED) lässt negative Werte weg.
SQL ServerPostgreSQL
Bei Ganzzahltypen nummeriert Auto-Increment (IDENTITY) die Zeilen selbst. Vorzeichenlos gibt es nicht.
Der Standardwert kann keiner sein, ein literaler Wert, NULL, CURRENT_TIMESTAMP oder ein Ausdruck. Jede Spalte kann außerdem einen Kommentar tragen.
MySQLMariaDBAurora
Textspalten können einen eigenen Zeichensatz und eine eigene Kollation haben; lässt man sie unverändert, erben sie die der Tabelle.
SQL ServerPostgreSQL
Der Builder bietet keinen Zeichensatz und keine Kollation pro Spalte an.
SQL Server
Der Kommentar wird als erweiterte Eigenschaft MS_Description geschrieben.
PostgreSQL
Der Kommentar wird mit COMMENT ON COLUMN geschrieben.
Eine Spalte, die schon existierte, behält ihren ursprünglichen Namen: Sie umzubenennen wird im ALTER TABLE zu einer Umbenennung, statt die Spalte zu löschen und eine neue anzulegen.
SQL ServerPostgreSQL
Eine neue Spalte kommt immer ans Ende der Tabelle: Die Engine hat kein AFTER. Eine neue Spalte nach oben oder unten zu verschieben ändert auf dem Server nichts, und die SQL-Vorschau sagt das in einem Kommentar.
Oracle
Bei NUMBER nummeriert Identität (IDENTITY) die Zeilen selbst (GENERATED BY DEFAULT AS IDENTITY). Vorzeichenlos gibt es nicht. Die Länge von VARCHAR2 und CHAR zählt Zeichen: 50 ergibt VARCHAR2(50 CHAR); um Bytes zu zählen, schreib 50 BYTE. NUMBER nimmt Genauigkeit und Skala im selben Feld (10,2), TIMESTAMP die Genauigkeit der Sekundenbruchteile (6). Der Builder bietet keinen Zeichensatz und keine Kollation pro Spalte an, und der Kommentar wird mit COMMENT ON COLUMN geschrieben. Eine neue Spalte kommt immer ans Ende der Tabelle. Bei einer bestehenden Tabelle sagt das ALTER TABLE nur, was du an jeder Spalte geändert hast; eine Identität lässt sich entfernen, aber einer bestehenden Spalte nicht hinzufügen, und die SQL-Vorschau sagt das in einem Kommentar.
Verwalte die Indizes der Tabelle: INDEX und UNIQUE, und FULLTEXT und SPATIAL, wo die Engine sie hat.
Wo es zu finden ist: Tabellen-Builder › Tab Indizes
Klick im Tab Indizes auf +, um einen Index hinzuzufügen. Gib ihm einen Namen und wähle den Typ; die Liste bietet nur die Typen an, die die Engine des Servers hat: INDEX (normal) und UNIQUE (ohne Duplikate).
MySQLMariaDBAurora
Außerdem FULLTEXT (Volltextsuche in CHAR/VARCHAR/TEXT-Spalten) und SPATIAL (Geodaten).
SQL ServerPostgreSQL
Der Builder hat weder FULLTEXT noch SPATIAL.
Hake die Spalten an, aus denen er besteht: Die Reihenfolge, in der du sie anhakst, ist die Reihenfolge des Index, und die Zahl daneben zeigt sie an. Ein Index kann mehrere Spalten umfassen (zusammengesetzter Index).
Klick mit der rechten Maustaste auf einen Index in der Liste (auf dem iPad: lange drücken), um ihn zu bearbeiten oder zu löschen. Einen bereits vorhandenen zu bearbeiten löscht ihn und legt ihn neu an.
Der Primärschlüssel wird pro Spalte im Tab Spalten definiert (Primärschlüssel (PRIMARY KEY)); er erscheint hier nicht als separater Index.
ClickHouse
Mit ClickHouse ist der einzige Typ Skip-Index: Du wählst seinen Typ (minmax, set(100) oder bloom_filter) und seine Granularität, und er überspringt Datenblöcke, statt eine Zeile zu suchen. Es gibt kein UNIQUE. Er lässt sich auch bei einer bestehenden Tabelle hinzufügen und entfernen, mit ALTER TABLE … ADD INDEX und DROP INDEX.
Oracle
Der Builder hat weder FULLTEXT noch SPATIAL. Ein UNIQUE-Index wird als UNIQUE-Constraint angelegt, und beim Löschen fällt der Constraint mitsamt seinem Index weg.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Definiere Beziehungen zur referentiellen Integrität zwischen Tabellen.
Wo es zu finden ist: Tabellen-Builder › Tab Fremdschlüssel
Klick im Tab Fremdschlüssel auf +, um einen FK hinzuzufügen. Gib ihm einen Namen, wähle die lokale Spalte, die Datenbank —dieselbe, sofern du keine andere wählst— und die referenzierte Tabelle, und gib die referenzierte Spalte ein.
Wähle die Aktionen ON DELETE und ON UPDATE: RESTRICT (Fehler bei Verletzung der Integrität), CASCADE (propagiert die Änderung), SET NULL (setzt NULL im FK) oder NO ACTION.
MySQLMariaDBAurora
NO ACTION entspricht RESTRICT. Beide Tabellen müssen die Speicher-Engine InnoDB verwenden.
SQL Server
RESTRICT gibt es nicht: Der Builder schreibt NO ACTION, das in dieser Engine dasselbe tut. Ein Fremdschlüssel kann nicht auf eine andere Datenbank zeigen, und die SQL-Vorschau sagt das in einem Kommentar.
Klick mit der rechten Maustaste auf einen Schlüssel in der Liste (auf dem iPad: lange drücken), um ihn zu bearbeiten oder zu löschen; einen bereits vorhandenen zu bearbeiten löscht ihn und legt ihn neu an. Der Builder erzeugt das CONSTRAINT mit explizitem Namen, damit es sich später über diesen Namen entfernen lässt.
ClickHouse
Mit ClickHouse gibt es keinen Tab Fremdschlüssel: Die Engine hat keine.
Oracle
Oracle kennt nur ON DELETE CASCADE und ON DELETE SET NULL: Bei RESTRICT oder NO ACTION schreibt der Builder keine Klausel, und das ist das Standardverhalten der Engine. ON UPDATE gibt es nicht, und der Tab bietet es nicht an. Ein Fremdschlüssel kann auf eine Tabelle in einem anderen Schema zeigen, wenn du das Recht REFERENCES darauf hast.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Was zur ganzen Tabelle gehört: ihr Kommentar und, wo die Engine sie hat, Speicher-Engine, Zeilenformat, Zeichensatz und Kollation.
Wo es zu finden ist: Tabellen-Builder › Tab Optionen
Der Tab Optionen enthält, was zur ganzen Tabelle gehört.
MySQLMariaDBAurora
Die Speicher-Engine (ENGINE), das Zeilenformat (ROW_FORMAT), Zeichensatz und Kollation der Tabelle —ein anderer Zeichensatz wählt die erste Kollation dieses Zeichensatzes— und den Tabellen-Kommentar. Textspalten, die auf „(erbt von Tabelle)“ bleiben, übernehmen den Zeichensatz der Tabelle.
MySQLMariaDBAurora
Das Zeilenformat wird beim Erstellen der Tabelle gewählt: Bei einer bestehenden Tabelle bietet der Tab es nicht an, weil der Builder es nicht ändert. Die Listen der Zeichensätze und Kollationen kommen vom Server; die der Speicher-Engines ist fest, mit InnoDB an erster Stelle.
SQL ServerPostgreSQL
Die Engine hat weder Speicher-Engine noch Zeilenformat noch Zeichensatz pro Tabelle, deshalb enthält der Tab nur den Tabellen-Kommentar.
SQL Server
Der Kommentar wird als erweiterte Eigenschaft MS_Description geschrieben.
PostgreSQL
Der Kommentar wird mit COMMENT ON TABLE geschrieben.
ClickHouse
Mit ClickHouse hat der Tab beim Anlegen der Tabelle den Abschnitt Schlüssel mit ORDER BY, PARTITION BY, PRIMARY KEY, TTL und SETTINGS, je nach gewählter Engine: Die MergeTree-Familie hat sie, Memory oder Log nicht. Bleibt ORDER BY leer, werden die als Primärschlüssel markierten Spalten genommen; ohne beides schaltet sich Tabelle erstellen ab, und die Fußzeile sagt, warum. Beim Bearbeiten einer bestehenden Tabelle erscheint der Abschnitt nicht, weil sich Engine und Schlüssel danach nicht mehr ändern lassen. Ein Hinweis am Ende sagt, was die Engine nicht hat: Fremdschlüssel, Autoinkrement, eindeutige Indizes und Zeichensatz.
Oracle
Die Engine hat weder Speicher-Engine noch Zeilenformat noch Zeichensatz pro Tabelle, deshalb enthält der Tab nur den Tabellen-Kommentar, der mit COMMENT ON TABLE geschrieben wird.