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.

Kataloge

Kataloge erkunden

Navigiere Tabellen, Views, Indizes, Felder, Routinen, Trigger und Events.

Wo es zu finden ist: Workspace › Werkzeuge › Kataloge

Öffne Kataloge über die Navigationsleiste des Workspace. Wähl eine Datenbank im oberen Auswahlfeld aus. Die Unter-Tabs zeigen die verschiedenen Objektkategorien.

Stichwörter: Kataloge, Objekte, Tabellen, Views, Indizes, Routinen

Das DDL eines Objekts anzeigen und bearbeiten

Zeigt das CREATE TABLE, CREATE VIEW oder CREATE PROCEDURE an und erlaubt, es zu bearbeiten und anzuwenden.

Wo es zu finden ist: Kataloge › Rechtsklick › DDL anzeigen

Mach einen Rechtsklick auf ein beliebiges Objekt in der Katalogliste und wähl DDL anzeigen. Das untere Panel zeigt das vollständige DDL mit farbiger Syntax und Textauswahl auf allen dreien.

Das DDL bearbeiten:
Klick auf Im ItemEditor öffnen (obere Schaltfläche des DDL-Panels), um den Editor in einem modalen Blatt mit vorgeladenem DDL zu öffnen:

- macOS: SQLTextEditor-Editor mit Syntaxhervorhebung.
- iPad: TextEditor mit Monospace-Schrift und Touch-Tastatur.

Bearbeite das DDL beliebig und klick auf Anwenden, um es an den Server zu senden. Die Schaltfläche Zurücksetzen verwirft deine Änderungen und kehrt zum ursprünglichen DDL zurück. Schlägt das ALTER oder CREATE fehl, erscheint eine rote Meldung in der unteren Leiste mit dem Fehler des Servers.

Verfügbar unter macOS, iPad und iPhone.

Stichwörter: DDL, CREATE TABLE, ALTER, Definition, Struktur, schema, bearbeiten, ItemEditor, Anwenden

Neue Tabelle erstellen

Erstellt eine Tabelle direkt über die Werkzeugleiste der Kataloge.

Wo es zu finden ist: Kataloge › Neue Tabelle

Nutz in der Werkzeugleiste der Kataloge die Schaltfläche Neue Tabelle, um den Tabellen-Builder in einem neuen Tab zu öffnen. Du kannst auch das Kontextmenü einer bestehenden Tabelle öffnen — Rechtsklick unter macOS, gedrückt halten auf dem iPad — und Tabelle entwerfen wählen, um sie zu bearbeiten.

Der Builder ist in vier Bereiche unterteilt, die über seine Tab-Leiste erreichbar sind:

- Spalten — legt Name, Datentyp und Constraints jeder Spalte fest. Wähl eine Zeile der Liste aus, um ihre Eigenschaften im unteren Panel zu bearbeiten (Identifikation, Constraints, Standardwert, Zeichensatz).
- Indizes — verwaltet PRIMARY-, UNIQUE-, INDEX- und FULLTEXT-Indizes.
- Fremdschlüssel — konfiguriert Beziehungen zwischen Tabellen mit ihren ON DELETE-/ON UPDATE-Aktionen.
- Optionen — stellt die Engine (ENGINE), den Zeichensatz und den Tabellenkommentar ein.

Der Bereich SQL-Vorschau unten zeigt in Echtzeit das DDL an, das ausgeführt wird. Klick auf Tabelle erstellen (oder Änderungen anwenden im Bearbeitungsmodus), um das DDL an den Server zu senden.

Stichwörter: neue Tabelle, create table, erstellen, DDL, Builder, Spalten, Indizes, Fremdschlüssel

Views, Indizes, Routinen, Trigger und Events erstellen

Greif über die Werkzeugleiste auf die visuellen Editoren für jeden Objekttyp zu.

Wo es zu finden ist: Kataloge › Neue View / Neuer Index / Neue Routine / Neuer Trigger / Neues Event

Die Werkzeugleiste der Kataloge enthält eigene Schaltflächen zum Erstellen jedes Objekttyps:

- Neue View — öffnet den View-Editor
- Neuer Index — öffnet den Index-Editor
- Neue Routine — öffnet den Editor für Funktionen und gespeicherte Prozeduren
- Neuer Trigger — öffnet den Trigger-Editor

MySQLMariaDBAurora

- Neues Event — im Tab Events, öffnet den Editor für Events des Schedulers

SQL ServerPostgreSQL

Es gibt weder den Tab Events noch Neues Event: Der Server hat keinen Event-Scheduler.

Jeder Editor generiert das entsprechende DDL (CREATE VIEW, CREATE INDEX, CREATE PROCEDURE usw.) im Dialekt des Servers, mit dem du verbunden bist, und führt es beim Bestätigen auf dem Server aus. Jeder bietet nur an, was dieser Server schreiben kann: Die folgenden Themen sagen, was sich von einer Engine zur anderen ändert.

Stichwörter: View, Index, Routine, Trigger, Event, erstellen, DDL, gespeicherte Prozedur

Views, Routinen, Trigger und Events bearbeiten

Bearbeite bestehende Objekte mit dem visuellen Editor oder direkt im SQL-Editor.

Wo es zu finden ist: Kataloge › Rechtsklick › Bearbeiten (visuelles Formular) / Im ItemEditor öffnen

Öffne das Kontextmenü einer View, Routine, eines Triggers oder Events im entsprechenden Tab der Kataloge — Rechtsklick unter macOS, gedrückt halten auf dem iPad. Neben DDL anzeigen bietet es zwei Wege zum Bearbeiten:

- Bearbeiten (visuelles Formular) — öffnet den grafischen Editor mit vorausgefüllten Feldern
- Im ItemEditor öffnen — öffnet das vollständige DDL des Objekts im SQL-Editor zur manuellen Bearbeitung

Änderungen im visuellen Formular erzeugen je nach Objekttyp ein ALTER oder DROP + CREATE.

Stichwörter: View bearbeiten, Routine bearbeiten, Trigger bearbeiten, Event bearbeiten, Formular, ItemEditor

Tabelle mit Dummy-Daten füllen

Generiert automatisch Testzeilen für eine Tabelle.

Wo es zu finden ist: Kataloge › Rechtsklick › Mit Dummy-Daten füllen

Öffne das Kontextmenü einer Tabelle im Tab Tabellen der Kataloge — Rechtsklick unter macOS, gedrückt halten auf dem iPad — und wähl Mit Dummy-Daten füllen. Calíope generiert Beispiel-INSERTs, die an die Spaltentypen der Tabelle angepasst sind.

Stichwörter: Dummy-Daten, seed, test data, füllen, fiktiv

Nur-Lesen-Modus

Verhindert versehentliche Änderungen an Katalogobjekten.

Wo es zu finden ist: Kataloge › Nur lesen

Aktivier den Schalter Nur lesen in der Leiste der Kataloge, um alle Schaltflächen zum Erstellen und Löschen zu deaktivieren. Nützlich beim Erkunden einer Produktionsdatenbank.

Stichwörter: nur lesen, read only, schützen, Produktion

View-Editor

Erstellt oder ändert eine View; welche Optionen es gibt, hängt von der Engine ab.

Wo es zu finden ist: Kataloge › Neue View / View bearbeiten

Der View-Editor öffnet sich beim Klick auf Neue View oder über das Kontextmenü einer bestehenden View — Rechtsklick unter macOS, gedrückt halten auf dem iPad — mit Bearbeiten (visuelles Formular). Er generiert das DDL CREATE VIEW automatisch.

Verfügbare Felder:

- Name — Name der View in der ausgewählten Datenbank.
- Der Ersetzen-Schalter — ist er aktiv, ersetzt das generierte DDL die View, falls sie bereits existiert, ohne sie vorher löschen zu müssen. Der Schalter heißt wie die Klausel, die er schreibt:

MySQLMariaDBAuroraPostgreSQL

OR REPLACE — CREATE OR REPLACE VIEW.

SQL Server

OR ALTER — CREATE OR ALTER VIEW.

MySQLMariaDBAurora

- Algorithmus — steuert, wie der Server die View verarbeitet:
- UNDEFINED (Standard) — der Server wählt den optimalen Algorithmus.
- MERGE — kombiniert die Query der View mit der äußeren Query. Effizienter.
- TEMPTABLE — materialisiert die View in einer temporären Tabelle, bevor äußere Filter angewendet werden.
- SQL Security — legt die Privilegien fest, mit denen die View ausgeführt wird:
- DEFINER (Standard) — wird mit den Privilegien des Benutzers ausgeführt, der sie erstellt hat.
- INVOKER — wird mit den Privilegien des Benutzers ausgeführt, der sie abfragt.

- CHECK OPTION — prüft, ob die über die View geänderten Zeilen darin weiterhin sichtbar bleiben:
- LOCAL — prüft nur die Bedingung dieser View.
- CASCADED — prüft auch die Bedingungen zugrunde liegender Views.
- SQL SELECT — der Texteditor mit der SELECT-Query, die den Inhalt der View definiert.

Klick auf Anwenden, um das DDL auf dem Server auszuführen.

SQL ServerPostgreSQL

Es gibt weder Algorithmus noch SQL Security: Das Blatt zeigt sie nicht an.

SQL Server

WITH CHECK OPTION hat nur eine Form, die CASCADED beschreibt: LOCAL zu wählen schreibt diese, und das Blatt sagt es.

Stichwörter: View, view, CREATE VIEW, OR REPLACE, Algorithmus, MERGE, TEMPTABLE, SQL SECURITY, DEFINER, INVOKER, CHECK OPTION, View-Editor

Editor für Routinen und Funktionen

Erstellt oder ändert gespeicherte Prozeduren und Funktionen mit visueller Oberfläche.

Wo es zu finden ist: Kataloge › Neue Routine / Routine bearbeiten

Der Routinen-Editor öffnet sich beim Klick auf Neue Routine oder beim Bearbeiten einer bestehenden Routine im Tab Routinen der Kataloge. Er generiert das DDL, das die Prozedur oder Funktion erstellt oder die mit diesem Namen ersetzt:

MySQLMariaDBAurora

Zwei Anweisungen, nacheinander ausgeführt: DROP PROCEDURE IF EXISTS und CREATE PROCEDURE (oder DROP FUNCTION IF EXISTS und CREATE FUNCTION). MySQL kennt kein CREATE OR REPLACE für Routinen, daher wird die vorhandene zuerst gelöscht: Schlägt das Erstellen fehl, ist sie nicht mehr da.

PostgreSQL

CREATE OR REPLACE PROCEDURE oder CREATE OR REPLACE FUNCTION.

SQL Server

CREATE OR ALTER PROCEDURE oder CREATE OR ALTER FUNCTION.

Verfügbare Felder:

- Name — Name der Prozedur oder Funktion.
- Typ — wähl zwischen PROCEDURE (Prozedur) oder FUNCTION (Funktion).
- Parameter — füg mit der Schaltfläche + Parameter hinzu. Jeder Parameter hat:
- Modus: IN (Eingabe), OUT (Ausgabe), INOUT (Eingabe und Ausgabe). Nur für Prozeduren verfügbar.
- Name des Parameters.
- Datentyp (z. B. INT, VARCHAR(100), DATETIME).
- Rückgabetyp (nur für Funktionen) — der Datentyp, den die Funktion zurückgibt (z. B. INT, VARCHAR(255)).
- Rumpf — Texteditor mit dem Code der Routine. Er beginnt als leerer BEGIN … END-Block, in den du schreibst.

Der Abschnitt Optionen zeigt nur, was der Server schreiben kann:

MySQLMariaDBAurora

- Deterministisch — schreibt DETERMINISTIC, wenn die Routine für dieselben Eingabeparameter immer dasselbe Ergebnis zurückgibt. Wichtig für die Replikation.
- Datenzugriff — deklariert das Verhalten der Routine gegenüber der Datenbank:
- CONTAINS SQL — kann SQL enthalten, liest oder schreibt aber keine Daten.
- NO SQL — enthält keine SQL-Anweisungen.
- READS SQL DATA — liest Daten, ändert sie aber nicht.
- MODIFIES SQL DATA — kann Daten einfügen, aktualisieren oder löschen.

PostgreSQL

Nur Deterministisch, und nur bei Funktionen: Er schreibt IMMUTABLE — die Funktion gibt für dieselben Argumente immer dasselbe Ergebnis zurück und liest die Datenbank nicht. Eine Prozedur hat diese Option nicht, und es gibt keinen Datenzugriff: PostgreSQL hat diese Klausel nicht. Der Rumpf wird in PL/pgSQL geschrieben (LANGUAGE plpgsql).

SQL Server

Es gibt keinen Abschnitt Optionen: SQL Server ermittelt selbst, ob eine Funktion deterministisch ist, und hat keine Klausel für den Datenzugriff. Ein Parameter, der nicht IN ist, wird @name typ OUTPUT geschrieben, und das @ wird ergänzt, wenn du es weglässt.

Klick auf Anwenden, um das DDL auf dem Server auszuführen.

Stichwörter: Routine, Prozedur, Funktion, PROCEDURE, FUNCTION, Parameter, IN, OUT, INOUT, deterministic, CONTAINS SQL, CREATE PROCEDURE, CREATE FUNCTION

Trigger-Editor

Erstellt oder ändert die Trigger einer Tabelle.

Wo es zu finden ist: Kataloge › Neuer Trigger / Trigger bearbeiten

Der Trigger-Editor öffnet sich beim Klick auf Neuer Trigger in der Werkzeugleiste der Kataloge oder über das Kontextmenü eines bestehenden Triggers — Rechtsklick unter macOS, gedrückt halten auf dem iPad — mit Bearbeiten (visuelles Formular). Der Schema-Baum öffnet ihn nicht: Sein Kontextmenü bietet nur SELECT * FROM, Daten importieren… und WHERE erstellen….

Verfügbare Felder:

- Name — Name des Triggers.
- Timing — wann der Trigger im Verhältnis zur Operation ausgelöst wird:

MySQLMariaDBAuroraPostgreSQL

- BEFORE — wird vor der Operation ausgeführt. Erlaubt, die Werte von NEW vor dem Schreiben zu ändern.
- AFTER — wird nach der Operation ausgeführt.

SQL Server

- AFTER — wird nach der Operation ausgeführt.
- INSTEAD OF — ersetzt die Operation durch den Code des Triggers.
Es gibt kein BEFORE.

- Ereignis — die Operation, die den Trigger auslöst:
- INSERT — beim Einfügen einer Zeile.
- UPDATE — beim Aktualisieren einer Zeile.
- DELETE — beim Löschen einer Zeile.
- Rumpf — Texteditor mit dem Code des Triggers. Der Startinhalt sagt in Kommentaren, wo die neuen und die vorherigen Zeilen stehen.

Klick auf Anwenden, um das DDL auf dem Server auszuführen.

MySQLMariaDBAuroraPostgreSQL

Der Trigger feuert einmal pro Zeile: NEW.spalte ist der neue Wert (bei INSERT und UPDATE) und OLD.spalte der vorherige (bei UPDATE und DELETE).

PostgreSQL

Der Code eines Triggers steht in einer Funktion: Calíope erstellt die Funktion <name>_fn mit dem Rumpf und den Trigger, der sie aufruft, FOR EACH ROW. Der Rumpf endet mit RETURN: In einem BEFORE-Trigger wird die Zeile geschrieben, die er zurückgibt, und NULL überspringt die Zeile. Der Startinhalt gibt COALESCE(NEW, OLD) zurück, was für alle drei Ereignisse passt.

SQL Server

Der Trigger feuert einmal pro Anweisung, nicht einmal pro Zeile, und die neuen und die vorherigen Zeilen stehen in den Tabellen inserted und deleted, nicht in NEW und OLD: Der Startinhalt sagt es.

Stichwörter: Trigger, Auslöser, BEFORE, AFTER, INSERT, UPDATE, DELETE, NEW, OLD, CREATE TRIGGER, Trigger-Editor

Editor für Scheduler-Events

Erstellt oder ändert Events des MySQL Event Schedulers.

Wo es zu finden ist: Kataloge › Neues Event / Event bearbeiten

Der Event-Editor öffnet sich beim Klick auf Neues Event in der Werkzeugleiste der Kataloge oder beim Bearbeiten eines bestehenden Events. Er setzt voraus, dass der Event Scheduler von MySQL aktiviert ist (SET GLOBAL event_scheduler = ON).

Verfügbare Felder:

- Name — Name des Events.
- Status — steuert, ob das Event aktiv ist:
- ENABLE — das Event wird gemäß seiner Planung ausgeführt.
- DISABLE — das Event ist pausiert.
- SLAVESIDE_DISABLED — auf einem Replikations-Slave deaktiviert.
- Planungstyp:
- Einmal (AT) — wird zu einem bestimmten Datum und einer bestimmten Uhrzeit ausgeführt. Nutz die Datums-/Zeitauswahl, um den Zeitpunkt zu wählen.
- Wiederkehrend (EVERY) — wiederholt sich alle N Zeiteinheiten. Konfiguriere die Zahl und die Einheit (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR).
- Startdatum (wiederkehrend) — wann das wiederkehrende Event zu laufen beginnt.
- Enddatum (wiederkehrend, optional) — aktivier den Schalter, um festzulegen, wann es aufhört zu laufen.
- Rumpf — SQL-Code, den das Event ausführt. Kann ein Block BEGIN … END mit mehreren Anweisungen sein.

Klick auf Anwenden, um das DDL auf dem Server auszuführen.

Stichwörter: Event, event scheduler, CREATE EVENT, ENABLE, DISABLE, AT, EVERY, wiederkehrend, Scheduler, cron, schedule

Index-Editor

Erstellt einen Index für eine Tabelle mit konfigurierbarem Typ, konfigurierbarer Methode und konfigurierbaren Spalten.

Wo es zu finden ist: Kataloge › Neuer Index / Index erstellen

Der Index-Editor öffnet sich im Tab Indizes der Kataloge: bei ausgewählter Tabelle über die Schaltfläche Neuer Index in der Werkzeugleiste; bei einem bereits vorhandenen Index über das Kontextmenü — Rechtsklick unter macOS, gedrückt halten auf dem iPad — mit Bearbeiten (visuelles Formular). Der Schema-Baum öffnet ihn nicht.

Verfügbare Felder:

- Name — Name des Index in der Tabelle.
- Typ:
- INDEX — normaler Index, erlaubt Duplikate.
- UNIQUE — eindeutiger Index, weist doppelte Werte in der indexierten Spalte oder Spaltenkombination zurück.

MySQLMariaDBAurora

- FULLTEXT — Volltextsuche. Nur für CHAR-, VARCHAR- oder TEXT-Spalten und die Engine MyISAM/InnoDB (MySQL 5.6+).
- SPATIAL — Geodaten. Nur für Spalten vom Typ Spatial und die Engine MyISAM.

MySQLMariaDBAuroraPostgreSQL

- Methode (für INDEX und UNIQUE):
- BTREE — B-Baum, die gängigste Methode. Unterstützt Bereichsvergleiche, LIKE 'abc%', ORDER BY.
- HASH — Hash-Tabelle, unterstützt nur exakte Gleichheitsvergleiche.

MySQLMariaDBAurora

HASH beachtet nur die Engine MEMORY.

PostgreSQL

Ein UNIQUE-Index kann nicht HASH sein, also ist die Methode bei UNIQUE BTREE. Andere Methoden (gin, gist, brin) werden nicht angeboten.

SQL Server

Es gibt keine Methode: CREATE INDEX hat keine USING-Klausel.

- Spalten — füg die Spalten hinzu, aus denen der Index besteht, mit dem Namensfeld und optional der Präfixlänge (Anzahl der zu indexierenden Zeichen; nützlich für lange TEXT- oder VARCHAR-Spalten).

SQL ServerPostgreSQL

Es gibt keinen Präfix-Index: Die ganze Spalte wird indexiert, und das generierte DDL sagt es in einem Kommentar.

Der Primärschlüssel wird über den Tab Spalten des Tabellen-Builders verwaltet, nicht über diesen Editor.

Klick auf Anwenden, um CREATE INDEX auf dem Server auszuführen.

Stichwörter: Index, index, CREATE INDEX, UNIQUE, FULLTEXT, SPATIAL, BTREE, HASH, Spalten, Präfix, ALTER TABLE, Index-Editor