Cette page décrit Calíope 1.5, la version que je construis en ce moment. La 1.4 est sur l'App Store pour Mac, iPad, iPhone, Apple Watch, Apple TV et Apple Vision Pro. Le changelog indique dans quelle version chaque fonction est arrivée.
Ajoute un bouton « Ouvrir dans Calíope » à chaque sujet. Ne fonctionne qu'avec l'app installée.
Créez ou modifiez des tables avec une interface visuelle sans écrire de DDL manuellement.
Où le trouver : Catalogues › clic droit › Nouvelle table / Concevoir la table
Le Constructeur de tables s'ouvre depuis Catalogues : cliquez sur Nouvelle table dans la barre d'outils ou faites un clic droit sur une table existante et choisissez Concevoir la table. Catalogues s'ouvre en mode lecture seule : désactivez-le d'abord. Disponible sur macOS, iPad et iPhone, et sur les trois il s'ouvre comme un onglet persistant de l'Espace de travail : vous pouvez basculer vers un autre onglet (par exemple Catalogues pour consulter une autre table) et revenir sans perdre votre travail. Chaque table s'ouvre dans son propre onglet.
L'éditeur comporte quatre onglets : Colonnes, Index, Clés étrangères et Options. En dessous, l'Aperçu SQL montre le CREATE TABLE —ou, pour une table existante, l'ALTER TABLE— que produisent vos modifications, et suit chaque changement ; Copier le place dans le presse-papiers. Quand vous avez terminé, cliquez sur Créer la table (ou Appliquer les modifications pour une table existante) pour l'exécuter sur le serveur. Réinitialiser annule vos changements : retour aux valeurs par défaut pour une nouvelle table, ou à la définition du serveur pour une table existante.
Ajoutez, modifiez et réorganisez les colonnes de la table.
Où le trouver : Constructeur de tables › Onglet Colonnes
Dans l'onglet Colonnes, cliquez sur + pour ajouter une colonne ; les boutons à côté dupliquent la colonne sélectionnée, la montent ou la descendent, et la suppriment. Cliquez sur une colonne de la liste pour la modifier en dessous : le nom, le type de données —la liste est celle du moteur du serveur—, la longueur quand le type en prend une (par exemple 500 pour VARCHAR), et les contraintes Autoriser NULL, Clé primaire (PRIMARY KEY) et Unique (UNIQUE), plus celles que seuls certains types prennent. Seules apparaissent celles que le type choisi accepte, et marquer une colonne comme clé primaire désactive NULL.
MySQLMariaDBAurora
Sur les types entiers, Auto-incrément (AUTO_INCREMENT) numérote les lignes tout seul et Non signé (UNSIGNED) exclut les valeurs négatives.
SQL ServerPostgreSQL
Sur les types entiers, Auto-incrément (IDENTITY) numérote les lignes tout seul. Il n'y a pas de Non signé.
La valeur par défaut peut être aucune, une valeur littérale, NULL, CURRENT_TIMESTAMP ou une expression. Chaque colonne peut aussi porter un commentaire.
MySQLMariaDBAurora
Les colonnes de texte peuvent avoir leur propre jeu de caractères et leur interclassement ; sinon, elles héritent de ceux de la table.
SQL ServerPostgreSQL
Le constructeur ne propose ni jeu de caractères ni interclassement par colonne.
SQL Server
Le commentaire est écrit comme la propriété étendue MS_Description.
PostgreSQL
Le commentaire est écrit avec COMMENT ON COLUMN.
Une colonne qui existait déjà garde son nom d'origine : la renommer devient un renommage dans l'ALTER TABLE au lieu de supprimer la colonne et d'en ajouter une nouvelle.
SQL ServerPostgreSQL
Une nouvelle colonne va toujours à la fin de la table : le moteur n'a pas d'AFTER. Monter ou descendre une nouvelle colonne ne change rien sur le serveur, et l'aperçu SQL le dit dans un commentaire.
Mots-clés : colonne, type de données, INT, VARCHAR, PRIMARY KEY, AUTO_INCREMENT, nullable
Gérez les index de la table : INDEX et UNIQUE, et FULLTEXT et SPATIAL là où le moteur les a.
Où le trouver : Constructeur de tables › Onglet Index
Dans l'onglet Index, cliquez sur + pour ajouter un index. Donnez-lui un nom et choisissez le type ; la liste ne propose que les types du moteur du serveur : INDEX (standard) et UNIQUE (sans doublons).
MySQLMariaDBAurora
Aussi FULLTEXT (recherche en texte intégral sur les colonnes CHAR/VARCHAR/TEXT) et SPATIAL (données géospatiales).
SQL ServerPostgreSQL
Le constructeur n'a ni FULLTEXT ni SPATIAL.
Cochez les colonnes qui le composent : l'ordre dans lequel vous les cochez est l'ordre de l'index, et le numéro à côté l'indique. Un index peut couvrir plusieurs colonnes (index composite).
Faites un clic droit sur un index de la liste pour le modifier ou le supprimer. Modifier un index qui existait déjà le supprime et le recrée.
La clé primaire est définie par colonne depuis l'onglet Colonnes (Clé primaire (PRIMARY KEY)) ; elle n'apparaît pas ici comme index séparé.
Définissez des relations d'intégrité référentielle entre les tables.
Où le trouver : Constructeur de tables › Onglet Clés étrangères
Dans l'onglet Clés étrangères, cliquez sur + pour ajouter une FK. Donnez-lui un nom, choisissez la colonne locale, la base de données —la même, sauf si vous en choisissez une autre— et la table de référence, puis saisissez la colonne référencée.
Choisissez les actions ON DELETE et ON UPDATE : RESTRICT (erreur si l'intégrité est violée), CASCADE (propage le changement), SET NULL (met la FK à NULL) ou NO ACTION.
MySQLMariaDBAurora
NO ACTION équivaut à RESTRICT. Les deux tables doivent utiliser le moteur de stockage InnoDB.
SQL Server
Il n'y a pas de RESTRICT : le constructeur écrit NO ACTION, qui fait la même chose dans ce moteur. Une clé étrangère ne peut pas pointer vers une autre base de données, et l'aperçu SQL le dit dans un commentaire.
Faites un clic droit sur une clé de la liste pour la modifier ou la supprimer ; modifier une clé qui existait déjà la supprime et la recrée. Le constructeur génère la CONSTRAINT avec un nom explicite, pour pouvoir la supprimer plus tard par ce nom.
Ce qui appartient à la table entière : son commentaire et, là où le moteur les a, moteur de stockage, format de ligne, jeu de caractères et interclassement.
Où le trouver : Constructeur de tables › Onglet Options
L'onglet Options regroupe ce qui appartient à la table entière.
MySQLMariaDBAurora
Le Moteur (ENGINE) de stockage, le Format de ligne (ROW_FORMAT), le Jeu de caractères et l'Interclassement de la table —changer le jeu de caractères sélectionne le premier interclassement de ce jeu— et le Commentaire de table. Les colonnes de texte laissées sur « (hérite de la table) » prennent le jeu de caractères de la table.
MySQLMariaDBAurora
Le format de ligne se choisit à la création de la table : pour une table existante, l'onglet ne le propose pas, car le constructeur ne le modifie pas. Les listes de moteurs, de jeux de caractères et d'interclassements viennent du serveur.
SQL ServerPostgreSQL
Le moteur n'a ni moteur de stockage, ni format de ligne, ni jeu de caractères par table : l'onglet ne contient que le Commentaire de table.
SQL Server
Le commentaire est écrit comme la propriété étendue MS_Description.
PostgreSQL
Le commentaire est écrit avec COMMENT ON TABLE.
Mots-clés : options, ENGINE, InnoDB, ROW_FORMAT, jeu de caractères, interclassement, commentaire