Cette page décrit Calíope 1.5, la version que nous construisons en ce moment. La 1.4 est terminée et en cours d'examen par Apple, et la boutique propose aujourd'hui la 1.3 sur le Mac et la 1.2 sur iPad. 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.
Rédigez et exécutez du SQL contre le serveur connecté.
Où le trouver : Éditeur SQL › Exécuter (⌘↩)
Saisissez votre instruction SQL dans l'éditeur de texte. Appuyez sur Exécuter (icône lecture) ou utilisez le raccourci ⌘↩ pour exécuter. Si du texte est sélectionné, seule la sélection est exécutée.
Les résultats s'affichent dans le tableau inférieur avec des lignes et des colonnes. Le temps d'exécution et le nombre de lignes sont indiqués dans la barre d'état.
Coupe avec KILL QUERY l'instruction qui traîne, sans fermer la connexion.
Où le trouver : Éditeur SQL › Arrêter
Le bouton Arrêter apparaît dans la barre de l'Éditeur SQL pendant une exécution, à côté de Exécuter. Sous macOS il répond aussi au raccourci ⌘. (Commande + point).
Ce qu'il fait exactement. MySQL et MariaDB ne permettent pas d'interrompre une requête par la connexion même qui l'attend ; Calíope en ouvre donc une autre et envoie KILL QUERY <id> sur la session qui l'exécute. C'est l'opération que propose l'outil Processus, pointée automatiquement sur votre propre requête.
- On utilise KILL QUERY et non KILL CONNECTION : l'instruction est interrompue et la connexion reste vivante, donc rien à reconnecter, la transaction ouverte n'est pas perdue et les tables temporaires de la session ne disparaissent pas.
- Dans un script à plusieurs instructions, celle en cours est arrêtée et les suivantes ne sont pas envoyées.
- Aucun privilège particulier n'est requis : tout utilisateur peut arrêter ses propres requêtes.
- À la fin, la barre d'état affiche Requête arrêtée. L'erreur Query execution was interrupted renvoyée par le serveur n'est pas présentée comme un échec : c'est la réponse attendue.
Limites. Le serveur décide quand il peut honorer la demande : un long SELECT est coupé presque aussitôt, mais une opération déjà entrée dans le moteur de stockage —un ALTER TABLE en train de recopier la table, un rollback en cours— peut tarder à lâcher, voire ne pas lâcher. Dans ce cas l'instruction reste vivante sur le serveur même si l'app ne l'attend plus : l'outil Processus le montre.
Efface le contenu de l'éditeur et le tableau de résultats.
Où le trouver : Éditeur SQL › Effacer
Appuyez sur le bouton Effacer dans la barre d'outils de l'éditeur SQL pour supprimer à la fois le texte de l'éditeur et les résultats affichés. L'historique des requêtes n'est pas affecté.
Applique une indentation et un formatage lisible au SQL de l'éditeur.
Où le trouver : Éditeur SQL › Beautify (⌘L)
Le bouton Beautify (ou le raccourci ⌘L) reformate le SQL de l'éditeur avec les mots-clés en majuscules, une indentation correcte et des sauts de ligne aux clauses. Utile pour lire des scripts compacts ou générés automatiquement.
Mots-clés : formater, beautify, pretty print, indenter, majuscules, format
Pourquoi l'avis « Corriger » apparaît sous l'éditeur, et ce qu'il fait.
Où le trouver : Espace de travail › Outils › Éditeur SQL
SQL ne comprend que les apostrophes droites : ' pour les chaînes et " pour les identifiants dans certains modes. Les guillemets typographiques —‘ ’ “ ” « » „ “— sont des caractères différents, et le serveur rejette l'instruction avec une erreur de syntaxe même si elle semble correcte à l'écran : en police à chasse fixe, ' et ‘ se distinguent très mal.
Calíope ne les écrit jamais. Ils arrivent en collant du SQL depuis Notes, le courrier ou une messagerie, qui remplacent les apostrophes à la saisie. Dans l'app la substitution est désactivée dans tous les éditeurs : ce que vous tapez ici sort toujours droit.
Quand l'éditeur repère un de ces guillemets là où SQL attend un délimiteur, un avis apparaît avec le bouton « Corriger ». Il ne change que ceux qui ne peuvent être autre chose : un guillemet courbe à l'intérieur d'une chaîne est un caractère valide de vos données —comme dans 'd’Artagnan'— et n'est pas touché. Si le doute subsiste, rien n'est modifié et aucun avis n'apparaît.
Bloque les instructions destructives pour éviter les erreurs. Activé par défaut.
Où le trouver : Éditeur SQL › Mode sûr
Le mode sécurisé est activé par défaut sur macOS, iPad et iPhone. Lorsqu'il est actif, Calíope intercepte les instructions ALTER, DROP, DELETE, UPDATE et TRUNCATE et affiche une alerte de confirmation avant de les exécuter.
Utilisez le commutateur Mode sécurisé (icône de cadenas) dans la barre d'outils de l'éditeur SQL pour l'activer ou le désactiver. L'état est persisté par profil de connexion entre les sessions.
Utile pour travailler en production ou pour les utilisateurs qui apprennent le SQL et souhaitent une protection contre les modifications accidentelles.
Gérez BEGIN, COMMIT et ROLLBACK depuis le menu déroulant de transactions.
Où le trouver : Éditeur SQL › Menu Transactions
Le menu déroulant Transactions dans la barre d'outils de l'éditeur SQL regroupe les trois opérations de contrôle : BEGIN (démarre la transaction), COMMIT (confirme les modifications) et ROLLBACK (annule les modifications).
COMMIT et ROLLBACK affichent une boîte de dialogue de confirmation avant de s'exécuter pour éviter les modifications accidentelles. Lorsqu'une transaction est active, la barre de résultats affiche l'étiquette Transaction active en vert.
MySQL et MariaDB exigent que le moteur de table soit InnoDB pour la prise en charge complète des transactions.
Mots-clés : transaction, commit, rollback, begin, InnoDB, menu déroulant
Le bouton Historique (icône d'horloge) ouvre une feuille avec les requêtes déjà exécutées : chaque ligne porte une marque verte ou rouge selon l'issue, le temps écoulé et la date. Vous pouvez y faire une recherche et recharger une requête dans l'éditeur avec le bouton Utiliser.
Une entrée est enregistrée par exécution, et non par instruction : si vous lancez un lot de douze instructions avec Exécuter le script, l'historique conserve le texte entier comme une seule entrée. Pour le voir instruction par instruction, utilisez le bouton Instructions.
La feuille ne liste que l'historique de l'onglet actif, et Effacer ne supprime que celui de cet onglet. Les boutons ▲ / ▼ situés à côté, en revanche, parcourent l'historique entier.
L'historique est conservé entre les sessions par profil de connexion (maximum 500 entrées par profil), sous la clé UserDefaults caliope_query_history_<id du profil>. Ce qui n'est pas conservé, c'est le texte d'une exécution de plus de 32 Ko : cette entrée reste visible le temps de la session et ne descend pas sur le disque, car en garder la moitié laisserait dans l'historique un SQL tronqué que l'on peut relancer.
Visualisez le plan d'exécution d'une requête SELECT.
Où le trouver : Éditeur SQL › Visual EXPLAIN
Avec une instruction SELECT dans l'éditeur, appuyez sur le bouton Visual EXPLAIN. Calíope exécute EXPLAIN FORMAT=JSON (syntaxe MySQL/MariaDB) et ouvre le résultat dans l'onglet Visual EXPLAIN, qui affiche l'arbre de nœuds du plan avec des couleurs par type d'accès.
Mots-clés : explain, plan, optimiseur, index, full scan, plan d'exécution
Choisissez le caractère qui sépare plusieurs instructions avant de les exécuter.
Où le trouver : Éditeur SQL › Sélecteur de délimiteur
Le sélecteur Délim dans la barre de résultats contrôle la façon dont Calíope divise le texte de l'éditeur en instructions individuelles avant de les exécuter. Il existe trois options prédéfinies :
- ; (point-virgule) — séparateur MySQL standard. Convient à la plupart des requêtes.
- | (pipe) — alternative utile lorsque le SQL contient des points-virgules dans des chaînes littérales.
- $$ — convention habituelle pour écrire des procédures stockées, des fonctions et des déclencheurs dont le corps contient des ; en interne. Avec ce délimiteur, vous pouvez écrire des blocs CREATE PROCEDURE … BEGIN … END$$ et Calíope exécutera chaque bloc comme une seule instruction.
Sur macOS, vous pouvez également saisir un délimiteur personnalisé dans le champ de texte situé à côté des boutons prédéfinis.
Le délimiteur actif est également utilisé comme séparateur de champs lors de l'exportation des résultats au format CSV.
Le panneau Instructions découpe selon ce même délimiteur, sa liste correspond donc à ce qui sera exécuté. Si vous le laissez vide, la liste comme l'exécution reviennent à ;.
Enregistrez les résultats de la requête dans différents formats.
Où le trouver : Éditeur SQL › Enregistrer le résultat
Appuyez sur le bouton Enregistrer le résultat (icône disquette) dans la barre de résultats. Choisissez le format de sortie — Tableau (texte), JSON, CSV, HTML ou XML — et sélectionnez où enregistrer le fichier avec la boîte de dialogue d'enregistrement du système.
Le nom du fichier est pré-rempli avec la date et l'heure d'exportation.
Générez des instructions INSERT pour le tableau ou le résultat actuel.
Où le trouver : Éditeur SQL › Menu INSERT
Le menu déroulant INSERT dans la barre d'outils propose deux options : Exporter le résultat en INSERT (convertit les lignes du résultat actuel) et Exporter le tableau en INSERT (sélectionnez une table dans une boîte de dialogue et exportez toutes ses données).
Le résultat est ajouté à l'éditeur SQL sous forme de texte prêt à copier ou à exécuter.
Modifiez la façon dont les résultats des requêtes sont affichés.
Où le trouver : Éditeur SQL › Sélecteur de format
Le sélecteur Format dans la barre de résultats vous permet de choisir entre : Tableau (grille interactive), JSON (résultat sous forme de tableau d'objets), CSV (séparé par le délimiteur actif Délim), Texte (colonnes alignées), HTML (tableau HTML) et XML (balises par champ).
Le format sélectionné est également utilisé lors de l'exportation du résultat vers un fichier.
Mots-clés : format, tableau, json, csv, html, xml, sortie, affichage
Accumulez les résultats de plusieurs exécutions sans effacer les précédents.
Où le trouver : Éditeur SQL › Concaténer
Activez le commutateur Concaténer dans la barre de résultats. Avec cette option active, chaque exécution ajoute ses lignes à celles déjà affichées au lieu de les remplacer. Utile pour combiner les résultats de requêtes similaires exécutées dans différentes conditions.
Exécutez automatiquement la requête toutes les N secondes.
Où le trouver : Éditeur SQL › Répéter
Activez le commutateur Répéter et saisissez l'intervalle en secondes. Calíope exécutera la requête automatiquement en boucle à cet intervalle. Utile pour surveiller le résultat de requêtes d'état ou de comptage en temps réel.
Désactivez le commutateur pour arrêter la répétition.
Exécutez chaque requête simultanément sur deux serveurs et comparez les résultats.
Où le trouver : Éditeur SQL › Lier BD
Le bouton Lier une BD (icône de maillon avec +) dans la barre d'outils de l'éditeur SQL connecte un second serveur MySQL/MariaDB à l'onglet actif.
Comment lier :
1. Appuyez sur Lier une BD. Un sélecteur apparaît avec vos profils de connexion récents.
2. Choisissez le profil du second serveur et appuyez sur Connecter.
3. Lorsque la connexion est établie, le bouton est remplacé par un badge vert avec le nom du profil et un bouton ✕.
Ce qui se passe lors de l'exécution avec une BD liée :
Chaque fois que vous appuyez sur Exécuter ou Exécuter le script, Calíope lance la même requête sur les deux serveurs en parallèle (sans blocage entre eux). À la place du tableau de résultats habituel, la vue de comparaison apparaît (voir rubrique : Comparer les résultats entre deux serveurs).
Déconnecter la BD liée :
Appuyez sur le bouton ✕ du badge vert. La connexion secondaire se ferme, la vue de comparaison disparaît et l'éditeur revient au mode normal avec les résultats du serveur principal.
Disponible sur macOS, iPad et iPhone.
Mots-clés : lier, link db, second serveur, connexion secondaire, parallèle, comparer, deux serveurs
Vue de comparaison côte à côte avec mise en évidence des différences par cellule.
Où le trouver : Éditeur SQL › Lier BD
Lorsqu'une BD est liée (voir Lier une BD), chaque exécution affiche la vue de comparaison à la place du tableau normal.
Barre de résumé (en haut) :
- Indicateur bleu — nom du serveur principal, nombre de lignes et temps d'exécution.
- Indicateur orange — nom du serveur secondaire, nombre de lignes et temps.
- Badge de résultat :
- ✓ Identiques (vert) — les deux résultats sont exactement les mêmes.
- ⚠ N valeur(s) · M ligne(s) supplémentaire(s) (orange) — il y a des différences.
- Bascule "Diff seulement" — masque les lignes identiques pour vous concentrer uniquement sur les différences. Désactivée lorsque les résultats sont identiques.
Comment lire le tableau de comparaison :
Le tableau ajoute une colonne BD à gauche des colonnes de données :
Indicateur
Signification
=
Ligne identique sur les deux serveurs (une seule ligne)
P
Ligne du serveur principal qui diffère du secondaire
S
Ligne du serveur secondaire qui diffère du principal
Lorsqu'une ligne diffère, deux lignes consécutives (P et S) sont affichées. Les cellules exactes présentant des différences sont mises en évidence :
- Rouge clair → valeur sur le serveur principal qui a changé.
- Vert clair → valeur sur le serveur secondaire qui a changé.
Les lignes qui n'existent que sur un seul serveur (différence de comptage) apparaissent avec un fond bleu (uniquement principal) ou orange (uniquement secondaire).
États spéciaux :
- Erreur sur un ou les deux serveurs — affiche le message d'erreur de chaque serveur séparément.
- Requête DML (sans colonnes) — affiche les lignes affectées de chaque serveur et si elles correspondent.
- Colonnes non correspondantes — affiche la liste des colonnes de chaque serveur avec les colonnes supplémentaires mises en évidence en orange.
Disponible sur macOS, iPad et iPhone.
Mots-clés : comparer, différences, diffs, deux serveurs, parallèle, mise en évidence, identiques, comparer résultats, diff seulement, badge, ligne supplémentaire
Insérez des fragments de code enregistrés directement dans l'éditeur.
Où le trouver : Éditeur SQL › Fragments
Appuyez sur le bouton Extraits (icône étoile) dans la barre d'outils de l'éditeur SQL. Une feuille s'ouvre avec la liste de vos extraits enregistrés : sélectionnez-en un et appuyez sur Insérer pour l'ajouter à la position actuelle du curseur dans l'éditeur.
Visualisez le contenu complet des cellules à texte long sans développer la ligne.
Où le trouver : Éditeur SQL › clic droit › Voir la valeur complète
Les cellules du tableau de résultats affichent le texte tronqué sur une seule ligne pour garder les lignes compactes. Pour lire la valeur complète sans redimensionner les colonnes :
macOS :Cliquez sur n'importe quelle cellule. Un popover ancré à la cellule apparaît avec la valeur complète, sélectionnable, et un bouton Copier en bas. Le popover est défilable si le contenu est très long.
iPad : Touchez n'importe quelle cellule. Une feuille s'ouvre avec la valeur complète, sélectionnable pour copie partielle. La feuille dispose également d'un bouton Copier dans la barre supérieure pour copier tout le contenu.
Sur les trois, le popover ou la feuille affiche le nom de la colonne dans l'en-tête et, pour les valeurs longues (plus de 50 caractères), indique le nombre total de caractères.
Les cellules avec une valeur NULL n'ouvrent pas le visualiseur lorsqu'on appuie dessus.
Éditez les valeurs de cellules avec un éditeur dédié pour le texte long, JSON et les données binaires.
Où le trouver : Éditeur SQL › clic droit › Édition avancée de valeur…
Faites un clic droit (macOS) ou maintenez appuyé (iPad) sur n'importe quelle cellule du résultat et choisissez Modifier la valeur avancée… pour l'ouvrir dans l'éditeur avancé de cellules. L'éditeur dispose d'onglets pour : texte brut, JSON (avec bouton de formatage) et données binaires/hex.
Utilisez le bouton OK pour copier la valeur modifiée dans le presse-papiers, ou Charger dans l'éditeur si la cellule contient du SQL.
Éditez la valeur d'une cellule et prévisualisez le UPDATE avant de l'exécuter.
Où le trouver : Éditeur SQL › clic droit › Générer UPDATE…
Calíope peut générer et exécuter un UPDATE directement depuis n'importe quelle cellule du résultat.
macOS : Faites un double-clic sur une cellule, ou utilisez le clic droit › Générer UPDATE… iPad : Faites un double-toucher sur une cellule, ou maintenez la cellule appuyée et choisissez Générer UPDATE… dans le menu contextuel.
Un panneau s'ouvre avec les champs suivants :
- Nouvelle valeur — saisissez la valeur de remplacement. Activez le bouton bascule NULL pour assigner NULL.
- Tableau — détecté automatiquement depuis le FROM de votre requête. Modifiez-le si nécessaire (un ⚠ apparaît s'il n'a pas été détecté).
- Colonne WHERE — la colonne servant de clé primaire dans la clause WHERE. Calíope priorise les colonnes nommées id, puis celles se terminant par _id, et enfin la première colonne.
- Valeur WHERE — affiche la valeur actuelle de cette colonne dans la ligne. Si elle est NULL, un avertissement orange apparaît car le WHERE affectera toutes les lignes avec cette condition.
Le SQL généré est modifiable — vous pouvez le modifier avant d'exécuter.
Appuyez sur Exécuter UPDATE (macOS) ou Exécuter (iPad) pour lancer l'instruction. En cas de succès, le résultat affiche les lignes affectées et le temps, et la requête d'origine est automatiquement ré-exécutée.
Générez et exécutez un DELETE pour la ligne sélectionnée avec prévisualisation et modification du SQL.
Où le trouver : Éditeur SQL › clic droit › Supprimer la ligne…
Calíope peut générer un DELETE pour n'importe quelle ligne visible dans le tableau de résultats.
macOS : Faites un clic droit sur n'importe quelle cellule de la ligne et choisissez Supprimer la ligne… iPad : Maintenez appuyé n'importe quelle cellule de la ligne et choisissez Supprimer la ligne… dans le menu contextuel.
Un panneau s'ouvre avec les champs suivants :
- Tableau — détecté automatiquement depuis le FROM de votre requête. Si le nom est incorrect (par exemple avec des JOINs ou des alias), saisissez-le manuellement au format base_de_données.table.
- Clause WHERE — choisissez la colonne servant de clé primaire. Calíope priorise les colonnes nommées id, puis celles se terminant par _id. Choisissez « Utiliser toutes les colonnes » si vous préférez identifier la ligne par toutes ses valeurs.
- SQL généré — prévisualisation modifiable du DELETE. Utilisez le bouton Copier SQL pour le copier dans le presse-papiers sans l'exécuter.
DELETE FROM `ma_base`.`utilisateurs`
WHERE `id` = '42';
Appuyez sur Supprimer la ligne pour exécuter. La requête d'origine est automatiquement ré-exécutée pour actualiser le tableau. Si une erreur se produit, le panneau reste ouvert et affiche le message d'erreur du serveur.
> Attention : Le mode sécurisé n'intercepte pas ce DELETE car il est exécuté en interne, pas depuis l'éditeur. Vérifiez toujours le WHERE avant de confirmer.
Consultez la documentation des fonctions du moteur auquel vous êtes connecté sans quitter l'éditeur.
Où le trouver : Éditeur SQL › Éditeur de texte
Calíope affiche une documentation intégrée pour les fonctions SQL du moteur de la session : avec MySQL, MariaDB et Aurora, celles de cette famille (SUM, DATE_FORMAT, JSON_EXTRACT, COALESCE, etc.) ; avec PostgreSQL, les siennes (string_agg, to_char, jsonb_set, date_trunc, etc.). Un nom présent dans les deux ne partage pas la même fiche, car il ne veut pas toujours dire la même chose : LENGTH compte des caractères sous PostgreSQL et des octets sous MySQL. Si rien n'apparaît quand vous survolez une fonction, c'est que cette fonction n'existe pas dans le moteur auquel vous êtes connecté.
macOS : Survolez le nom d'une fonction reconnue dans l'éditeur avec le curseur. Après une brève pause, un popover apparaît avec la syntaxe, le type de retour, la description, les paramètres avec leurs types et un exemple d'utilisation.
iPad : Lorsque le curseur est positionné à l'intérieur ou juste après le nom d'une fonction reconnue, une barre de contexte apparaît automatiquement sous la barre d'outils de l'éditeur, affichant le nom et la syntaxe. Appuyez sur le bouton ? dans la barre pour ouvrir la documentation complète dans une feuille.
La documentation comprend :
- Syntaxe complète de la fonction
- Type de retour
- Description du comportement
- Paramètres avec nom, type et s'ils sont optionnels
- Exemple d'utilisation lorsqu'il est disponible
Analysez le script de l'éditeur et gérez ses instructions individuellement.
Où le trouver : Éditeur SQL › Instructions SQL
Le bouton Instructions (icône de liste) ouvre le Gestionnaire d'instructions SQL, qui divise le contenu de l'éditeur par point-virgule et affiche chaque instruction numérotée, avec son type (SELECT, INSERT, UPDATE, etc.) et une icône colorée. Depuis le gestionnaire, vous pouvez copier des instructions, les charger dans l'éditeur, les retirer de la liste ou effectuer des recherches parmi elles.
C'est une vue du texte actuellement présent dans l'éditeur et elle n'exécute rien : elle est recalculée à chaque ouverture de la feuille, et Retirer de la liste enlève la ligne de la liste, jamais de l'éditeur. C'est là la différence avec l'Historique, qui enregistre ce qui a déjà été exécuté, avec une entrée par exécution.
Le gestionnaire découpe selon le délimiteur actif de la barre de résultats, celui-là même qu'utilise l'exécution : avec ; il découpe sur les points-virgules, et si vous avez choisi $$ pour écrire un CREATE PROCEDURE, le bloc entier est listé comme une seule instruction. Ce qu'il énumère correspond donc à ce qui sera exécuté.
Mots-clés : instructions, statements, diviser, gérer, liste de requêtes, gestionnaire
Exécutez toutes les instructions de l'éditeur en une seule fois avec ⌘⇧↩.
Où le trouver : Éditeur SQL › Exécuter le script (⌘⇧↩)
Utilisez le raccourci ⌘⇧↩ ou le bouton Exécuter le script (icône double éclair) dans la barre d'outils de l'éditeur SQL pour exécuter toutes les instructions de l'éditeur séquentiellement, quel que soit le texte sélectionné.
macOS : le bouton apparaît à côté du bouton Exécuter principal dans la barre d'outils. iPad : disponible dans la barre d'outils supérieure de l'éditeur.
Contrairement à Exécuter (⌘↩), qui n'exécute que la sélection active ou l'instruction sous le curseur, Exécuter le script traite toutes les instructions séparées par le délimiteur actif dans l'ordre et accumule les résultats.
Mots-clés : exécuter script, run all, ⌘⇧Return, toutes les instructions, script complet, requêtes multiples
Les résultats arrivent par pages : 50 lignes sur le Mac, 200 sur iPad et iPhone.
Où le trouver : Éditeur SQL › Grille de résultats
Sur macOS les résultats arrivent par pages de 50 lignes, avec leur barre en bas —précédent, suivant et indicateur de page—, qui n'apparaît que si la requête a renvoyé plus de 50. Vous pouvez trier en cliquant un en-tête, choisir plusieurs lignes avec ⇧ ou ⌘, les copier avec ⌘C —elles sortent en TSV, avec les noms de colonnes en tête— et les glisser hors de l'app.
Le tri est côté client, et il porte sur le résultat entier. Il trie les lignes déjà rapportées —toutes, pas seulement la page affichée— et les pages sont découpées ensuite. Il ne trie pas la table du serveur, et la grille le dit en dessous tant qu'un tri est appliqué. Si vous voulez les dix premières pour de vrai, le tri va dans la requête : ORDER BY … LIMIT 10.
La sélection appartient à la page. Elle se vide au changement de page, pour que ⌘C et le glisser n'emportent pas des lignes qui ne sont plus devant vous.
Sur iPad et iPhone les pages sont de 200 lignes, avec la même barre en bas.
Sur les trois, le découpage est local : la requête s'exécute en entier et se répartit en mémoire. S'il vous faut exactement une plage de lignes, ajoutez LIMIT et OFFSET à la requête.
Recherchez et remplacez du texte dans l'éditeur SQL avec la recherche native du système.
Où le trouver : Éditeur SQL › Rechercher (⌘F)
Appuyez sur le bouton Rechercher (icône loupe) dans la barre d'outils de l'éditeur SQL ou utilisez le raccourci ⌘F (macOS) pour ouvrir la recherche intégrée.
macOS : Le NSTextFinder natif est activé avec des champs de recherche et de remplacement, la navigation entre les correspondances avec ↩ / ⇧↩, et l'option de remplacer une ou toutes les correspondances.
iPad :UIFindInteraction est activé, présentant la barre de recherche/remplacement native iOS au-dessus du clavier, avec prise en charge de la navigation tactile entre les correspondances.
Récupérez les requêtes précédentes directement depuis l'éditeur sans ouvrir le panneau d'historique.
Où le trouver : Éditeur SQL › Flèches ‹ › d'historique
L'éditeur SQL permet de rappeler les requêtes précédentes directement depuis le champ de texte, comme dans le terminal mysql.
macOS :
- Appuyez sur ↑ avec le curseur au tout début de l'éditeur (position 0, sans sélection) pour charger la requête précédente de l'historique.
- Appuyez sur ↓ avec le curseur sur la dernière ligne pour revenir vers le présent.
- Vous pouvez aussi utiliser les boutons ▲ / ▼ de la barre d'outils de l'éditeur.
iPad :
- Utilisez les boutons ▲ / ▼, ou ⌘↑ / ⌘↓ avec un clavier physique.
Rien ne se perd pendant la navigation. En entrant dans l'historique, ce qui était dans l'éditeur est mis de côté, et ↓ le restaure tel quel — l'éditeur ne reste pas vide. Et s'il s'agit de votre propre brouillon à moitié écrit, ni les touches ni les boutons n'y touchent : ↑ et ↓ déplacent le curseur comme d'habitude.
Touches et boutons partagent le même parcours, donc ▼ annule exactement ce que ↑ a fait. Ils parcourent l'historique de l'onglet actif, celui-là même que liste la feuille du bouton Historique. Naviguer dans l'historique ne le modifie pas.
Enregistrez le résultat actuel pour le consulter pendant l'exécution d'autres requêtes.
Où le trouver : Éditeur SQL › Épingler le résultat
Le bouton Épingler (icône épingle) dans la barre de résultats enregistre une copie du résultat actuel ainsi que le SQL qui l'a généré et l'heure d'exécution. Le résultat épinglé persiste même lorsque d'autres requêtes sont exécutées.
Lorsque des résultats sont épinglés, le bouton Épinglés (N) apparaît, permettant d'afficher ou masquer le panneau des résultats épinglés. Chaque résultat épinglé affiche :
- Le SQL abrégé qui l'a généré
- Le nombre de lignes et de colonnes
- L'heure d'exécution
- Un bouton ✕ pour désépingler ce résultat individuellement
Disponible sur macOS, iPad et iPhone. Utile pour comparer l'état d'une table avant et après une modification.
Mots-clés : épingler, pin, résultats, comparer, multiples, enregistrer résultat, avant et après
Panneau de style terminal avec invite mysql> pour exécuter du SQL de façon interactive.
Où le trouver : Éditeur SQL › Terminal
Le bouton Terminal (icône terminal) dans la barre d'outils de l'éditeur SQL ouvre un panneau inférieur de style REPL.
Comment l'utiliser :
- Saisissez du SQL dans le champ avec l'invite mysql> et appuyez sur ↩ (ou le bouton ↵) pour exécuter.
- Les résultats SELECT sont affichés sous forme de tableau ASCII avec des séparateurs +---+.
- Les instructions DML affichent « Query OK, N ligne(s) affectée(s) ».
- Les erreurs sont affichées en rouge avec le message MySQL.
Naviguer dans l'historique du terminal :
- macOS : Utilisez ↑ / ↓ dans le champ de saisie pour parcourir les requêtes précédentes du terminal.
- iPad : Utilisez les boutons ‹ / › au-dessus du champ de saisie.
Effacer : Le bouton corbeille dans l'en-tête efface la sortie du terminal.
Le terminal dispose de son propre historique indépendant de l'éditeur SQL principal. Les requêtes exécutées depuis le terminal sont également ajoutées à l'historique global de la session.
Enregistrez les résultats en JSON, Markdown, XML ou Excel (.xlsx) en plus du CSV.
Où le trouver : Éditeur SQL › Sélecteur de format
En plus des formats classiques (Tableau, CSV, HTML), le sélecteur Format dans la barre de résultats comprend :
- JSON — tableau d'objets, idéal pour les API et les outils de développement.
- Markdown — tableau au format Markdown, prêt à être collé dans une documentation ou Notion.
- XML — un élément par ligne, compatible avec les outils de traitement de données.
- Excel (.xlsx) — feuille de calcul prête à ouvrir dans Numbers ou Excel. Utilisez le bouton Enregistrer qui apparaît dans la barre de résultats lors de la sélection de ce format.
Le bouton Enregistrer / Partager dans la barre de résultats exporte avec le format actif sélectionné dans le sélecteur.
Remplacez l'astérisque d'un SELECT par les noms réels des colonnes de la table.
Où le trouver : Éditeur SQL › clic droit › Développer * → colonnes
Lorsque vous avez un SELECT * FROM table dans l'éditeur, Calíope peut développer ce * en la liste explicite des colonnes de la table directement dans l'éditeur.
Comment l'utiliser (macOS) :
1. Positionnez le curseur à l'intérieur de l'instruction SELECT contenant le *.
2. Faites un clic droit dans l'éditeur pour ouvrir le menu contextuel.
3. Sélectionnez Développer * → colonnes de nom_table.
Calíope interroge le serveur pour obtenir les colonnes actuelles de la table et remplace le * par la liste des colonnes entre guillemets inversés séparées par des virgules, par exemple :
SELECT `id`, `nom`, `email`, `created_at` FROM `utilisateurs`
Conditions requises :
- Une base de données active doit être sélectionnée dans le sélecteur de la barre d'outils.
- L'option n'apparaît dans le menu contextuel que lorsque le curseur est à l'intérieur d'une instruction SELECT … FROM table valide.
- La table doit exister dans la base de données active et l'utilisateur doit avoir des droits de lecture.
Disponible sur macOS uniquement. Le développement des colonnes n'est pas disponible sur iPad ni sur iPhone dans cette version.
Complète les mots-clés SQL, les noms de tables et de colonnes. Le popup automatique à la frappe nécessite l'activation d'une option dans les Préférences.
Où le trouver : Calíope › Préférences › Éditeur de texte
L'éditeur SQL propose deux couches d'autocomplétion indépendantes.
1. Mots-clés SQL :
L'éditeur connaît tous les mots-clés MySQL/MariaDB (SELECT, FROM, WHERE, JOIN, GROUP BY, etc.) et les inclut dans le popup de suggestions. Activez ou désactivez cette couche dans Préférences › Éditeur de texte › Autocompléter les mots-clés SQL.
2. Noms de tables et de colonnes du schéma :
Calíope charge les objets de la base de données active (tables, colonnes, alias) et les ajoute aux suggestions. Vous n'êtes pas obligé de commencer par le début du nom : n'importe quelle partie convient, et ceux qui commencent par ce que vous avez tapé arrivent en premier.
---
Comment le popup s'ouvre :
- Manuellement :⌘N sur macOS, et sur iPad le bouton Autocomplétion de la barre de l'éditeur — ou ⌘N, si vous avez un clavier physique. Il ouvre le popup à tout moment, indépendamment de ce que vous avez tapé. Le bouton est là tant que l'autocomplétion est activée dans les Préférences, ce qui gouverne aussi le raccourci.
- Automatiquement à la frappe : le popup peut apparaître de lui-même après que vous ayez arrêté de taper pendant un bref instant. Cette fonction est désactivée par défaut. Pour l'activer, allez dans Préférences › Éditeur de texte et activez le commutateur « Autocomplétion en temps réel ». Une fois actif, le popup apparaît environ 350 ms après la dernière frappe.
Si vous tapez SEL, faites une pause et rien n'apparaît, c'est que l'autocomplétion en temps réel n'est pas activée. Utilisez ⌘N — ou le bouton de la barre, sur iPad — pour l'ouvrir manuellement, ou activez l'option dans les Préférences.
---
Popup d'objets en tapant un point :
Si vous tapez le nom d'une base de données entre guillemets inversés suivi d'un point (ex. `ma_bd`. ), l'éditeur affiche automatiquement les tables de cette base pour une sélection directe. Si vous continuez à taper, la liste se raccourcit et ne garde que les noms qui contiennent ce que vous avez écrit.
Disponible sur macOS, iPad et iPhone. Sur iPad et iPhone, aucun clavier n'est nécessaire : le bouton de la barre ouvre le popup exactement comme ⌘N.
Réduisez ou développez les blocs de parenthèses et BEGIN…END pour simplifier la lecture de scripts complexes.
Où le trouver : Raccourci clavier : ⌃. / ⌃, — clic en el margen izquierdo
L'éditeur SQL de Calíope permet de plier (réduire) deux types de blocs :
1. Blocs de parenthèses (…)
Utile pour les sous-requêtes longues, les clauses IN (…) ou les listes de colonnes dans CREATE TABLE. Le triangle ▼ apparaît dans la marge gauche sur toute ligne contenant un ( avec des sauts de ligne internes.
2. Blocs BEGIN…END
Les corps des procédures stockées, fonctions, déclencheurs et événements MariaDB/MySQL utilisent BEGIN…END. Le triangle ▼ apparaît dans la marge gauche sur la ligne contenant BEGIN. Lorsqu'il est plié, le bloc apparaît sous la forme BEGIN(…)END, laissant visible la signature de l'objet (CREATE PROCEDURE …, CREATE FUNCTION …, etc.).
Blocs pris en charge :
- CREATE PROCEDURE name() BEGIN … END
- CREATE FUNCTION name() RETURNS type BEGIN … END
- CREATE TRIGGER name … BEGIN … END
- CREATE EVENT name … DO BEGIN … END
- Blocs BEGIN … END isolés (début de transaction)
END IF, END LOOP, END CASE, END WHILE et similaires ne ferment pas un BEGIN de routine et sont correctement ignorés.
Comment plier/déplier :
- Avec la souris / le toucher : Cliquez (macOS) ou touchez (iPad) le triangle ▼ dans la marge gauche de la ligne.
- Avec le clavier (macOS) :
- ⌃. (Contrôle + point) — Plie le bloc (parenthèses ou BEGIN…END) contenant le curseur.
- ⌃, (Contrôle + virgule) — Déplie le bloc plié à la position du curseur.
Comportement :
- Le pliage est uniquement visuel : le texte complet reste dans l'éditeur et est envoyé intégralement au serveur lors de l'exécution.
- Les plis sont conservés tant que l'onglet reste ouvert.
Indicateur dans la barre latérale affichant le CPU et la RAM de l'app, avec des suggestions de nettoyage en cas d'utilisation élevée.
Où le trouver : Panneau latéral › Moniteur de performance (bas de la barre latérale)
Le moniteur de performances apparaît en bas de la barre latérale gauche du workspace (sous l'arbre de schémas). Il affiche l'utilisation actuelle du CPU et de la RAM de l'app Calíope.
Couleurs de l'indicateur :
- 🟢 Vert — Performances normales (CPU < 30 %, RAM < 5 % de la RAM totale du système)
- 🟡 Ambre — Utilisation élevée (CPU 30–70 % ou RAM 5–10 % de la RAM totale du système)
- 🔴 Rouge — Pression élevée (CPU > 70 % ou RAM > 10 % de la RAM totale du système ; sur iPad aussi déclenché par une alerte du système d'exploitation)
Ce que signifie « Effacer les résultats » : supprime le tableau de lignes du résultat actuel de cet onglet de l'éditeur SQL, libérant la mémoire qu'ils occupent. La requête écrite dans l'éditeur n'est pas supprimée ; vous pouvez la ré-exécuter à tout moment.
Quand agir : si le badge de l'indicateur apparaît en rouge, l'app peut répondre plus lentement. Appuyez ou touchez l'indicateur pour voir le panneau de détail — les suggestions indiquent exactement quel onglet utilise le plus de mémoire et proposent un bouton d'action direct.
Commentez ou décommentez les lignes sélectionnées avec le préfixe '--'.
Où le trouver : Éditeur SQL › Commenter
Appuyez sur ⌘D (ou le bouton Commenter dans la barre d'outils) pour basculer les commentaires SQL sur les lignes sélectionnées.
Comportement :
- Si du texte est sélectionné, agit sur toutes les lignes englobées par la sélection.
- Sans sélection, agit sur la ligne où se trouve le curseur.
- Si toutes les lignes non vides commencent déjà par --, elles sont décommentées ; sinon, -- est ajouté au début de chaque ligne.
Raccourcis :
- macOS :⌘D dans l'éditeur ou bouton dans la barre d'outils
- iPad :⌘D avec Magic Keyboard ou bouton dans la barre d'outils
Souligne les erreurs lexicales dans l'éditeur pendant la frappe, sans rien exécuter contre la base de données.
Où le trouver : Éditeur SQL › Barre de résultats
Le linting pré-exécution analyse le texte de l'éditeur automatiquement (500 ms après que vous avez arrêté d'écrire) et souligne avec une ligne pointillée rouge les erreurs lexicales que MySQL/MariaDB rejetterait définitivement.
Erreurs détectées :
Erreur
Exemple
Chaîne littérale non fermée
WHERE nom = 'jean
Identifiant avec guillemet inversé non fermé
SELECT `colonne
Commentaire de bloc non fermé
/* sans fermeture
Parenthèse ouvrante sans fermeture
SIN(x + 1
Parenthèse fermante sans ouverture
SIN x + 1)
Comment le lire :
- Le caractère problématique est souligné avec une ligne pointillée rouge.
- Un badge rouge apparaît dans la barre de résultats avec le nombre d'erreurs (ex. ⚠ 2 erreur(s)). En survolant le badge, tous les messages s'affichent.
- S'il n'y a pas d'erreurs, le badge disparaît.
Limitations :
Le linter est purement lexical ; il ne valide pas que les noms de tables ou de colonnes existent sur le serveur, ni ne vérifie la sémantique des clauses SQL. Son but est d'attraper les erreurs les plus évidentes — chaînes non fermées, parenthèses déséquilibrées — qui sont souvent difficiles à repérer dans les scripts longs.
Contrôlez si les lignes longues se replient visuellement ou permettent un défilement horizontal.
Où le trouver : Éditeur SQL › Préférences → Éditeur
Le retour à la ligne automatique (word wrap) détermine comment les lignes de l'éditeur s'affichent lorsque leur longueur dépasse la largeur visible.
Activé (par défaut) : les longues lignes se replient sur la ligne visuelle suivante sans insérer de caractère dans le texte. Plus confortable pour lire des requêtes complexes sans défilement horizontal.
Désactivé : chaque ligne occupe exactement une rangée. Une barre de défilement horizontal apparaît en bas de l'éditeur pour voir toute la ligne sans interruption. Utile pour les scripts avec alignement tabulaire (SELECT column1, column2, ...) ou pour vérifier du code généré automatiquement avec des lignes très longues.
Comment le modifier :
- macOS : menu Calíope → Préférences → Éditeur → Retour à la ligne automatique.
- iPad :Réglages de l'app → même option.
Le réglage est partagé entre macOS, iPad et iPhone via la clé UserDefaults caliope_pref_word_wrap.
Mots-clés : retour à la ligne, word wrap, wrap, défilement horizontal, lignes longues, préférences, réglages, no wrap
Illumine le bracket ou mot-clé de fermeture/ouverture correspondant au curseur.
Où le trouver : Éditeur SQL › Éditeur de texte
Lorsque le curseur est à côté d'un bracket ou des mots-clés BEGIN/END, l'éditeur met automatiquement en évidence le caractère ou mot-clé qui lui correspond.
Types de paires pris en charge :
Ouvre
Ferme
Exemple SQL
(
)
sous-requêtes, appels de fonction
{
}
JSON inline
[
]
noms avec espaces [ma table]
BEGIN
END
procédures, fonctions, déclencheurs, événements
Code couleur :
- Jaune — les deux extrémités se correspondent correctement.
- Rouge — le bracket ou mot-clé n'a pas de paire (déséquilibre).
Comportement :
- La mise en évidence se met à jour en temps réel au déplacement du curseur ou à la modification du texte.
- END IF, END LOOP, END CASE, END WHILE, END REPEAT et END FOR sont correctement ignorés : seuls les END qui ferment un bloc BEGIN de routine sont appariés.
- Les blocs BEGIN/END imbriqués sont résolus avec comptage de profondeur (le END correct est identifié même avec plusieurs niveaux d'imbrication).
Disponible sur macOS, iPad et iPhone.
Mots-clés : bracket, parenthèse, appariement, paire, mise en évidence, BEGIN, END, accolade, crochet, déséquilibre, imbriqué, highlight pair
Mettre en évidence toutes les occurrences d'un mot
Un double-clic sur un mot et l'éditeur éclaire toutes ses occurrences dans le texte.
Où le trouver : Éditeur SQL › Éditeur de texte
Double-cliquez sur un mot de l'éditeur —nom de table, colonne, alias, mot-clé— et toutes ses autres occurrences se peignent sur fond turquoise. Sur iPad, le geste équivalent est le double tap.
Comment le choix est fait :
- La comparaison porte sur le mot entier : sélectionner id n'éclaire pas le id contenu dans identifiant.
- Elle ignore la casse, car pour MySQL Id, id et ID désignent la même colonne.
- La sélection doit correspondre exactement à un mot : si elle englobe des espaces, des virgules ou des parenthèses, ou si elle coupe un mot en deux, rien n'est mis en évidence.
- Le mot doit compter au moins deux caractères.
- Le mot sélectionné n'est pas repeint : la couleur de sélection le distingue déjà.
La mise en évidence disparaît dès que le curseur bouge, qu'une autre sélection est faite ou que le texte est modifié. 500 occurrences au maximum sont éclairées ; dans un script où ce plafond est atteint, Rechercher (⌘F) rend mieux service, car il permet aussi de passer de l'une à l'autre.
Disponible sur macOS, iPad et iPhone.
Mots-clés : mettre en évidence, occurrences, double-clic, double tap, mot, sélectionner un mot, éclairer, surligner, highlight
Modifiez simultanément plusieurs positions dans l'éditeur.
Où le trouver : Éditeur SQL › Édition en colonne
Le mode édition en colonne place des curseurs secondaires sur plusieurs lignes et écrit ou supprime dans toutes à la fois. C'est ce qu'il faut pour renommer un alias sur cinq lignes, ou ajouter un préfixe ou un suffixe à un bloc de lignes.
Sur macOS :
AppKit n'a pas de multi-curseur natif, alors Calíope le dessine. Utilisez le bouton Édition en colonne de la barre d'outils, ou appuyez directement sur ⌥⌘↓, qui active le mode et place le second curseur d'un coup ; le bouton devient violet tant que le mode est actif. Ensuite, chaque clic ajoute un curseur, et ⌥⌘↓ / ⌥⌘↑ en ajoutent un sur la ligne du dessous ou du dessus sans toucher la souris — la colonne est conservée, et rognée à la fin d'une ligne plus courte. Échap quitte le mode. Ici ⌘⇧M n'est pas le raccourci : sur macOS il ouvre déjà le sélecteur d'extraits.
Sur iPad :
Appuyez sur ⌘⇧M avec un Magic Keyboard ou sur le bouton Édition en colonne de la barre d'outils. Le mode actif, chaque touche dans l'éditeur accumule un curseur secondaire.
Sur les deux, un curseur secondaire est une ligne verticale bleue avec sa ligne surlignée, et écrire ou supprimer fonctionne pareil : le caractère va d'abord au curseur principal, puis est répliqué aux positions secondaires de l'indice le plus grand au plus petit, pour qu'insérer à l'une ne déplace pas celles qui restent.
Naviguez depuis l'éditeur directement vers la définition d'une table, vue, routine ou déclencheur dans le catalogue.
Où le trouver : Éditeur SQL › clic droit › Aller à la définition
Aller à la définition résout le nom d'un identifiant sous le curseur et ouvre l'onglet Catalogues en affichant cet objet sélectionné.
Comment l'activer :
Plateforme
Méthode
macOS
⌘ + clic sur l'identifiant dans l'éditeur
macOS
F12 avec le curseur positionné sur l'identifiant
macOS
Clic droit › Aller à la définition dans le menu contextuel
iPad
Maintenez appuyé tout identifiant → menu contextuel → Aller à la définition
Objets reconnus :
- Tables → ouvre l'onglet Catalogues et sélectionne la table
- Vues → bascule vers l'onglet Vues et sélectionne la vue
- Procédures et fonctions → bascule vers l'onglet Routines
- Déclencheurs → bascule vers l'onglet Déclencheurs
Comportement :
1. Calíope interroge les objets de la base de données active dans le sélecteur.
2. Si l'identifiant correspond à un objet connu, il ouvre (ou active) l'onglet Catalogues et sélectionne automatiquement l'objet — y compris le chargement du DDL dans le panneau inférieur.
3. Si l'identifiant n'existe pas dans le schéma actif, la barre d'état affiche « Objet introuvable dans le schéma » sans ouvrir le catalogue.
Condition requise : une base de données active doit être sélectionnée dans le sélecteur de la barre d'outils.
Disponible sur macOS, iPad et iPhone.
Mots-clés : aller à la définition, go to definition, naviguer, table, vue, routine, catalogue, F12, cmd clic, long press, identifiant, schéma
Affiche le DDL des tables, vues, routines et déclencheurs en survolant simplement leur nom dans l'éditeur.
Où le trouver : Éditeur SQL › Info-bulle DDL
L'info-bulle DDL au survol est le moyen le plus rapide d'inspecter la définition d'un objet du schéma sans quitter l'éditeur.
Comment ça fonctionne :
Plateforme
Comportement
macOS
Arrêtez le curseur sur le nom d'un objet du schéma pendant 0,4 s — un popover apparaît avec le DDL complet
iPad
Déplacez le curseur de texte (touchez) sur un identifiant du schéma — la barre DDL apparaît sous la barre d'outils
Sans pointeur (macOS) :Naviguer › Fiche de la fonction au curseur (⌃⌘?) ouvre la fiche de ce qui se trouve au curseur de texte — le même popover que le survol, y compris une fonction que vous venez de taper (DATE_FORMAT(). S'il n'y a rien à documenter, un bip retentit.
Contenu du popover / de la barre DDL :
- Icône et badge de type (TABLE, VUE, PROCÉDURE, FONCTION, DÉCLENCHEUR, ÉVÉNEMENT)
- DDL complet en police monospace, avec sélection de texte activée
- Bouton « Aller à la définition » → navigue vers l'objet dans l'onglet Catalogues
Coexistence avec l'aide sur les fonctions natives :
- Si l'identifiant est une fonction SQL native suivie de ( (ex. DATE_FORMAT(), la documentation de la fonction est affichée, pas le DDL.
- Si l'identifiant est un objet du schéma sans ( à la suite, l'info-bulle DDL est affichée.
- Les deux systèmes ne s'activent pas simultanément.
Cache : le DDL de chaque objet est stocké en mémoire pendant la session pour éviter des requêtes répétées.
Condition requise : une base de données active doit être sélectionnée dans le sélecteur de la barre d'outils.
Disponible sur macOS, iPad et iPhone.
Mots-clés : ddl, survol, hover, tooltip, popover, create table, show create, définition, table, vue, procédure, fonction, déclencheur, événement, inspection, schéma, hint bar
Palette de recherche pour accéder à tout objet du schéma actif en tapant une partie de son nom.
Où le trouver : Éditeur SQL › Ouverture rapide
Quick Open est une palette de recherche instantanée qui vous permet de naviguer vers n'importe quelle table, vue, procédure, fonction, déclencheur ou événement sans quitter l'éditeur ni parcourir l'arbre des Catalogues.
Comment l'ouvrir :
Plateforme
Méthode
macOS
⌘⇧O (menu Naviguer › Quick Open…)
iPad
⌘⇧O (Magic Keyboard) ou bouton Quick Open dans la barre d'outils de l'éditeur
Comment l'utiliser :
1. Un panneau s'ouvre avec un champ de recherche.
2. Tapez n'importe quelle partie du nom de l'objet — la liste se filtre en temps réel.
3. Sélectionnez le résultat avec les touches ↑↓ et confirmez avec ↵, ou cliquez directement sur l'élément.
4. Calíope navigue automatiquement vers l'objet dans l'onglet Catalogues.
5. Appuyez sur Esc à tout moment pour fermer sans naviguer.
Algorithme de recherche (correspondance floue en trois niveaux) :
- Le nom commence par le texte saisi → priorité maximale
- Le nom contient le texte à n'importe quelle position → priorité moyenne
- Les caractères saisis apparaissent dans l'ordre en tant que sous-séquence (ex. cru trouve creer_utilisateur) → priorité minimale
Les résultats correspondants sont mis en évidence dans la couleur d'accentuation de l'app.
Renommez un alias, un CTE ou une variable et propagez le changement à toutes ses références dans le script actif.
Où le trouver : Éditeur SQL › clic droit › Renommer le symbole
Renommer un symbole vous permet de changer le nom de tout identifiant local du script — alias de colonne, nom de CTE, variable — et de remplacer automatiquement toutes ses occurrences dans le même fichier en une seule opération.
Comment l'invoquer ?
Plateforme
Action
macOS
Clic droit sur l'identifiant → Renommer le symbole…
iPad
Maintenez appuyé l'identifiant → menu contextuel → Renommer le symbole…
Saisissez le nouveau nom dans la boîte de dialogue qui apparaît et confirmez avec Renommer (ou appuyez sur ↵). Toutes les occurrences sont substituées en une seule étape.
Annuler : l'opération complète est annulée avec un seul ⌘Z (macOS) ou en secouant l'appareil / bouton annuler (iPad). Il n'est pas nécessaire d'annuler occurrence par occurrence.
Portée : uniquement le script ouvert dans l'onglet actif. Ne modifie aucun objet dans la base de données.
Correspondance : utilise des limites de mot entier, donc renommer id n'affecte pas client_id ni user_id.
Note : le remplacement est sensible à la casse et s'applique au texte complet du script, y compris les commentaires et les littéraux de chaîne si l'identifiant y apparaît.
Disponible sur macOS, iPad et iPhone.
Mots-clés : renommer, rename, symbole, alias, cte, variable, refactoring, remplacer, identifiant, script, mot entier, menu contextuel
Créez des requêtes SELECT visuellement en faisant glisser des tables, en choisissant des colonnes et en laissant Calíope générer automatiquement les JOINs.
Où le trouver : Espace de travail › Query Builder
Query Builder est un onglet du workspace qui vous permet de créer des requêtes SELECT visuellement, sans écrire du SQL manuellement.
Comment l'ouvrir ?
- macOS / iPad : onglet Query Builder dans la barre de navigation du workspace (icône de rectangles groupés).
Flux de travail
1. Le panneau gauche affiche toutes les tables de la base de données active.
2. Appuyez sur + à côté d'une table (ou faites-la glisser vers le canvas sur macOS) pour l'ajouter.
3. Chaque table apparaît sous forme de carte avec des cases à cocher par colonne. Toutes les colonnes sont cochées par défaut ; décochez celles dont vous n'avez pas besoin.
4. Calíope détecte automatiquement les clés étrangères entre les tables du canvas et génère le JOIN correspondant.
5. S'il n'existe pas de FK entre deux tables, un CROSS JOIN est inséré avec un commentaire d'avertissement.
6. Le panneau inférieur affiche le SQL généré en temps réel.
7. Appuyez sur Insérer dans l'éditeur pour ouvrir le SQL dans un nouvel onglet de l'éditeur.
Options du canvas
Contrôle
Description
Type de JOIN
Basculez entre INNER, LEFT et RIGHT pour tous les JOINs du canvas
Alias
Touchez l'alias d'une table (lettre soulignée en bleu) pour le modifier
Tout sélectionner / aucun
Dans le pied de chaque carte
Effacer le canvas
Supprime toutes les tables du canvas
Notes
- Les JOINs sont détectés via information_schema.KEY_COLUMN_USAGE (syntaxe MySQL/MariaDB). Si la base de données n'a pas de FK déclarées, un CROSS JOIN apparaîtra que vous devrez ajuster manuellement dans l'éditeur.
- Le SQL généré est un point de départ ; vous pouvez le modifier librement une fois inséré.
Disponible sur macOS, iPad et iPhone.
Conditions (WHERE)
Entre le canevas et le SQL se trouve une section Conditions, repliable, où filtrer la requête. Appuyez sur Ajouter une condition puis choisissez colonne, opérateur et valeur.
Détail
Rôle
Opérateurs
=, !=, >, <, >=, <=, LIKE, NOT LIKE, IN, NOT IN, BETWEEN, IS NULL, IS NOT NULL. LIKE n'est pas proposé sur les colonnes numériques.
Guillemets
Décidés par le type déclaré de la colonne : un varchar est cité même si la valeur ressemble à un nombre.
IN
Valeurs séparées par des virgules. Si une valeur contient une virgule, entourez-la de guillemets simples : 'Pérez, Ana', Luis.
Bouton {}
Traite la valeur comme une expression SQL et non comme un littéral : une autre colonne (p.fecha) ou une fonction (NOW()).
AND / OR
Le connecteur se choisit par ligne. En les mélangeant, le SQL sort avec les parenthèses explicites, pour que la précédence soit celle qu'on lit.
Une condition à moitié remplie ne casse pas la requête : elle est signalée dans la liste et omise du SQL.
Avertissement de jointure externe
Avec LEFT ou RIGHT JOIN, filtrer dans le WHERE la table du côté qui peut venir à NULL écarte précisément les lignes sans correspondance, et la jointure finit par se comporter comme un INNER. Le cas échéant, la condition est signalée et Déplacer vers ON est proposé : elle passe dans la condition de jointure et les lignes orphelines sont conservées. IS NULL n'avertit pas : c'est le motif délibéré pour chercher « ceux qui n'en ont pas ».
Le panneau des tables dispose d’un filtre par nom dans son en-tête : dans une base comportant de nombreuses tables, saisissez une partie du nom plutôt que de faire défiler jusqu’à la trouver. C’est le même arbre de schéma que dans le reste de l’app, limité à la base active.
Vue miniature du script complet avec indicateur de position actuelle.
Où le trouver : Éditeur SQL › Préférences → Éditeur
La miniature (minimap) affiche une représentation visuelle réduite de tout le contenu de l'éditeur dans la marge droite. Une bande semi-transparente bleue indique quelle portion du script est actuellement visible dans la zone principale.
Pour l'activer :
- macOS : menu Calíope → Préférences → Éditeur → Afficher la miniature.
- iPad :Réglages de l'app → même option.
Navigation avec la miniature :
- Clic / toucher n'importe où sur la miniature défile l'éditeur vers cette position dans le script.
- Glisser sur la miniature permet une navigation continue.
- La miniature se met à jour automatiquement lors de la frappe et du défilement.
Représentation visuelle :
Chaque ligne du script apparaît sous forme de barre horizontale dont la largeur est proportionnelle à la longueur de la ligne (normalisée à 80 caractères). La couleur correspond au texte de l'éditeur à faible opacité ; elle ne réplique pas les couleurs de la coloration syntaxique.
Dimensions :
- macOS : 80 pt de large dans la marge droite de l'éditeur.
- iPad : 64 pt de large. La zone de texte s'ajuste automatiquement pour ne pas être couverte.
Faites glisser un fichier .sql ou .txt directement sur le workspace pour l'ouvrir dans un nouvel onglet de l'éditeur.
Où le trouver : Espace de travail › Éditeur SQL
Ouvrir des fichiers SQL par glisser-déposer
Vous pouvez ouvrir n'importe quel fichier .sql ou .txt en le faisant glisser directement sur la fenêtre du workspace de Calíope, sans utiliser le menu ni le sélecteur de fichiers.
Comment le faire sur macOS :
1. Ouvrez le Finder et localisez votre fichier .sql.
2. Faites glisser le fichier sur la zone principale du workspace de Calíope.
3. Un indicateur visuel bleu apparaît pendant que vous maintenez le fichier sur la zone.
4. Déposez le fichier — le contenu s'ouvre automatiquement dans un nouvel onglet de l'éditeur SQL.
Comment le faire sur iPad :
1. Ouvrez l'app Fichiers en Split View ou Stage Manager à côté de Calíope.
2. Maintenez appuyé le fichier .sql jusqu'à ce qu'il se « soulève ».
3. Faites-le glisser vers le workspace de Calíope.
4. Déposez-le sur la zone de l'éditeur — le contenu s'ouvre dans un nouvel onglet.
Autres méthodes d'ouverture :
- Menu Fichier → Ouvrir un fichier SQL… (raccourci : ⌃⌥O sur macOS)
- Glisser sur l'icône du Dock sur macOS (géré par le système)
- Partager → Ouvrir avec Calíope depuis l'app Fichiers sur iPad
Réorganisez les groupes de boutons dans les barres de l'éditeur et des résultats.
Où le trouver : Éditeur SQL › Personnaliser (extrémité gauche de chaque barre)
Les deux barres d'outils de l'éditeur SQL — la barre de l'éditeur (supérieure) et la barre de résultats (inférieure) — peuvent être personnalisées pour adapter l'ordre des boutons à votre flux de travail.
Comment le faire :
1. Appuyez sur le bouton Personnaliser (icône de trois curseurs) qui apparaît à l'extrémité gauche de chaque barre.
2. Dans le panneau qui s'ouvre, vous verrez la liste des groupes de boutons dans leur ordre actuel.
3. Faites glisser chaque ligne pour la réorganiser selon vos préférences.
4. Appuyez sur Terminé pour enregistrer les modifications.
L'ordre est automatiquement enregistré et maintenu entre les sessions. Utilisez le bouton Réinitialiser pour revenir à l'ordre par défaut.
Les groupes disponibles dans la barre de l'éditeur sont : Exécuter, Format du code, Sécurité et transactions, Historique et navigation, Analyse SQL, Outils, Performances, Connexion externe et Taille de la police.
Les groupes disponibles dans la barre de résultats sont : Délimiteur, Format de sortie, Options, Taille de la police, Enregistrer le résultat, Épingler les résultats et Analyse de requête.
Disponible sur macOS, iPad et iPhone, avec un ordre pour le Mac et un autre partagé par l'iPad et l'iPhone.
Recevez une notification système lorsqu'une requête dépasse le seuil de temps configuré.
Où le trouver : Calíope › Préférences › Notifications
Lorsque vous exécutez une requête qui prend plus de temps que prévu et que vous passez à une autre application pendant l'attente, Calíope peut vous envoyer une notification locale à la fin.
Configurer le seuil :
Allez dans Préférences › Notifications et activez Requête longue terminée. Ajustez le seuil avec le contrôle pas-à-pas (par défaut 5 s ; plage 1–300 s).
La notification se déclenche au maximum une fois par fenêtre de 60 s pour éviter le spam. Elle arrive aussi lorsque Calíope est au premier plan : les seuls avis passés sous silence quand l'application est devant sont les deux de la sauvegarde manuelle.
Soyez averti lorsqu'une requête retourne plus de lignes que le seuil configuré.
Où le trouver : Calíope › Préférences › Notifications
Si une requête retourne un très grand nombre de lignes, Calíope peut vous alerter par une notification locale.
Configurer le seuil :
Allez dans Préférences › Notifications et activez Résultat de grande taille. Ajustez le seuil avec le contrôle pas-à-pas (par défaut 10 000 lignes ; plage 1 000–100 000).
Les données s'affichent toujours à l'écran ; la notification est purement informative.
Mots-clés : notification, grand résultat, lignes, seuil, volume, alerte
Éditeur avancé de cellules (texte long, JSON, binaire)
Modifiez des valeurs complexes dans une feuille dédiée avec des onglets pour le texte, le JSON et les données binaires.
Où le trouver : Résultats › clic droit › Édition avancée de valeur…
L'Éditeur avancé de cellules est une feuille modale conçue pour les valeurs qui ne tiennent pas confortablement dans la grille : textes longs (TEXT, MEDIUMTEXT, LONGTEXT), documents JSON, contenus binaires (BLOB, VARBINARY) et chaînes avec sauts de ligne.
Comment l'ouvrir
- macOS : faites un clic droit sur la cellule et choisissez Éditer la valeur avancée…, ou appuyez sur ⌘E avec la cellule sélectionnée.
- iPad : appuyez longuement sur la cellule et choisissez Éditer la valeur avancée… dans le menu contextuel.
Onglets de l'éditeur
- Texte — champ d'édition en texte brut avec comptage de caractères et de lignes et option de retour à la ligne. Utile pour VARCHAR/TEXT avec sauts de ligne.
- JSON — éditeur avec coloration syntaxique et validation. Le bouton Formater applique une indentation de 2 espaces ; Minifier réduit à une seule ligne. Si le JSON est invalide, une barre inférieure indique l'erreur avec la ligne et la colonne exactes.
- Hex — onglet éditable qui affiche le contenu en hexadécimal (paires en majuscules, 16 octets par ligne). Accepte les espaces, les sauts de ligne et un préfixe 0x optionnel lors du collage.
- Base64 — onglet éditable avec le contenu en base64 standard (RFC 4648). Accepte les espaces lors du collage.
- Image — prévisualise les octets actuels comme image si le contenu est interprétable (PNG, JPEG, GIF, etc.). Se rafraîchit en direct lors de l'édition en Hex ou Base64. L'image se zoome : pincez à deux doigts, tournez la molette en la survolant, ou utilisez les boutons du bas, qui portent le pourcentage entre eux et les raccourcis ⌘−, ⌘+ et ⌘0. La plage va de 100 %, c'est-à-dire l'image ajustée au cadre, à 800 % ; le double clic —double toucher sur iPad— bascule entre l'ajustement et 200 % ancré là où vous avez touché, et le glissement la déplace sans la décoller du bord.
Chaque onglet éditable propose Formater (réindente les octets valides), Coller (lit le presse-papiers) et Réinitialiser (revient à la valeur d'origine). Si le contenu saisi ne se décode pas, un badge rouge l'indique et le bouton OK est désactivé.
Enregistrer ou ignorer
- Enregistrer — prépare l'instruction UPDATE et l'ouvre dans la Prévisualisation des modifications avant exécution ; elle n'est jamais exécutée directement.
- Annuler — ferme sans modifier la ligne. La cellule d'origine reste inchangée.
Restrictions
- Si la table n'a pas de clé primaire ou si la ligne ne peut pas être identifiée de manière unique, le bouton Enregistrer est désactivé. Calíope suggère alors d'exécuter l'instruction UPDATE manuellement.
- Pour les valeurs NULL, utilisez le menu Valeur › Définir NULL dans l'éditeur ; n'écrivez pas le mot littéral dans le champ texte.
- L'éditeur transmet les octets au pipeline UPDATE sous forme de chaîne UTF-8. Les octets qui ne forment pas une séquence UTF-8 valide (par exemple 0xDEADBEEF brut) sont remplacés par le caractère de remplacement lors de la sauvegarde ; dans ces cas, préférez construire l'UPDATE manuellement avec UNHEX('…') ou des littéraux 0x….
Exécutez une même requête sur deux bases de données ou serveurs différents et visualisez les différences ligne par ligne.
Où le trouver : Éditeur SQL › Exécuter sur deux bases…
La vue Comparaison de résultats vous permet d'exécuter une même requête sur deux sessions différentes — par exemple, production vs. staging, ou deux répliques — et de voir les différences ligne par ligne et cellule par cellule.
Comment lancer la comparaison
- Ouvrez l'Éditeur SQL dans une session, écrivez la requête et déroulez le menu Exécuter ▸ dans la barre d'outils de la vue.
- Choisissez Exécuter sur deux bases… et sélectionnez la seconde base ou le second serveur à comparer. Les deux exécutions ont lieu en parallèle.
- À la fin, la grille de résultats est remplacée par la vue comparée.
Barre de résumé (haut)
- Deux « badges » avec la couleur de chaque base : bleu = primaire, orange = secondaire. Chacun affiche le nom de la session, le nombre de lignes et le temps (ms).
- Indicateur de différences : vert ✓ Identiques lorsque tout coïncide, ou orange ⚠︎ indiquant combien de valeurs diffèrent (N différences) et combien de lignes n'existent que d'un côté (M lignes supplémentaires).
- Bouton Différences uniquement — filtre la table pour n'afficher que les lignes présentant une différence.
Grille de comparaison
- Chaque ligne commence par un indicateur :
- = (gris) — la ligne est identique dans les deux bases.
- P (bleu) — ligne du côté primaire.
- S (orange) — ligne du côté secondaire.
- Les lignes avec valeurs différentes apparaissent appariées (P en haut, S en bas) avec les cellules divergentes surlignées en rouge (primaire) ou vert (secondaire).
- Les lignes qui n'existent que d'un côté apparaissent avec un fond teinté plus intense.
Autres états
- Lignes affectées — si la requête est un INSERT/UPDATE/DELETE, la vue affiche des grands compteurs côte à côte avec l'étiquette Lignes affectées identiques ou la différence numérique.
- Erreur sur l'une ou les deux — si une exécution a échoué, le bloc d'erreur apparaît avec le message en police à espacement fixe (sélectionnable).
- Colonnes ne correspondent pas — si les deux requêtes ont retourné des ensembles de colonnes différents, elles sont listées côte à côte avec + pour les extras et ✓ pour les communes.
Menu contextuel sur une cellule
- Copier — copie la valeur exacte dans le presse-papiers du système.
Notes
- L'ordre des lignes provient directement de chaque moteur ; pour des comparaisons stables, utilisez toujours un ORDER BY explicite.
- Les valeurs NULL s'affichent en rouge atténué avec l'étiquette littérale NULL.
Mots-clés : comparer, comparaison, diff, différences, deux bases, deux serveurs, primary, secondary, primaire, secondaire, différences uniquement, lignes identiques, lignes affectées, colonnes ne correspondent pas, double, côte à côte
Voir et modifier des données spatiales sur une carte
Comment les colonnes GEOMETRY sont lues, dessinées et modifiées sans écrire de SQL à la main.
Où le trouver : Éditeur SQL › Carte
Une colonne GEOMETRY — POINT, LINESTRING, POLYGON et leurs variantes multiples — ne s'affiche plus comme une poignée d'octets : Calíope la montre en texte WKT dans la grille, exactement comme l'écrirait ST_AsText, et la dessine sur une carte.
Ouvrir la carte
Avec un résultat contenant au moins une colonne spatiale, le bouton Carte de la barre de résultats ouvre un panneau sous la grille. Faites glisser le séparateur pour partager la hauteur avec le reste de l'éditeur, comme pour le graphique ou le terminal.
Si le résultat comporte plusieurs colonnes spatiales, un sélecteur à gauche choisit celle qui est dessinée. Les points apparaissent en épingles, les lignes et les polygones en tracés ; un polygone à trous est dessiné avec ses trous.
Ce qui n'est pas dessiné est annoncé
Au bas du panneau figurent les compteurs qui expliquent l'écart entre les lignes du résultat et ce qui est sur la carte : combien de lignes n'ont pas de géométrie, combien sont restées hors du plafond de dessin — dix mille géométries — et combien n'ont pas pu être lues. Une ligne non affichée ne disparaît jamais en silence.
Modifier
Le sélecteur de mode a trois positions. En Explorer, on se contente de regarder. En Déplacer, les épingles se font glisser : quand vous en relâchez une, Calíope compose l'instruction UPDATE et l'affiche avant de l'exécuter — rien n'est écrit tant que vous n'appuyez pas sur Appliquer, et si vous annulez, l'épingle revient à sa place. En Ajouter, une touche sur la carte propose l'INSERT d'une nouvelle géométrie.
En sélectionnant une ligne ou un polygone en mode Déplacer, ses sommets apparaissent : les ronds se font glisser pour les déplacer, et ceux marqués +, au milieu de chaque segment, créent un nouveau sommet lorsqu'on les fait glisser. Les anneaux d'un polygone restent fermés d'eux-mêmes.
Le bouton Vider met à NULL la géométrie de la ligne sélectionnée sans supprimer la ligne.
Quand la modification est impossible
Si vous voyez un cadenas à la place du sélecteur de mode, la carte est en lecture seule. Il y a deux cas, et le motif apparaît au survol : la requête ne permet pas de savoir dans quelle table écrire — un JOIN, une vue, une sous-requête — ou le résultat n'a pas de clé primaire fiable. Sans elle, un UPDATE pourrait toucher plusieurs lignes, alors Calíope préfère ne pas le proposer. Ajouter la clé primaire au SELECT suffit généralement.
L'ordre des coordonnées
Dans POINT(a b), lequel des deux nombres est la latitude dépend du serveur et du système de référence, et ce n'est pas un détail : à l'envers, un point de Madrid se retrouve dans l'océan Indien. MySQL 8 avec le SRID 4326 écrit la latitude en premier, car c'est ce que déclare EPSG:4326 ; MariaDB et le SRID 0 écrivent la longitude en premier. Calíope s'en charge seul — il affiche et écrit dans le même ordre que le serveur — et c'est pourquoi le texte de la cellule correspond toujours à ce que renvoie ST_AsText sur ce même serveur.
Statistiques détaillées d'une colonne de résultat : min, max, moy, NULLs, valeurs distinctes et valeurs principales.
Où le trouver : Grille de résultats › clic droit › Profiler la colonne…
Le Profileur de colonne analyse les valeurs de n'importe quelle colonne dans le résultat d'une requête SQL.
Comment l'activer :
- macOS : faites un clic droit sur l'en-tête d'une colonne dans la grille de résultats et sélectionnez Profiler la colonne…
- iPad : appuyez sur le bouton Profiler col. dans la barre de résultats pour ouvrir le panneau avec le sélecteur de colonne.
Informations affichées :
- Total de lignes, nombre de NULLs et pourcentage
- Valeurs distinctes et leur pourcentage
- Minimum, maximum et moyenne (si la colonne est numérique)
- Les 8 valeurs les plus fréquentes avec un graphique à barres
Les calculs sont effectués sur les lignes déjà chargées, sans exécuter de requêtes supplémentaires sur le serveur.
Décompose les phases internes d'une requête avec leur temps d'exécution.
Où le trouver : Éditeur SQL › Profiler
Le Profileur de requête utilise SET profiling = 1 et SHOW PROFILE FOR QUERY n (syntaxe MySQL/MariaDB) pour obtenir la décomposition des phases internes de MySQL lors de l'exécution d'une requête.
Comment l'activer : cliquez sur le bouton Profiler dans la barre de résultats de l'Éditeur SQL. Calíope ré-exécute la requête actuelle et affiche les phases (parsing, optimizing, executing, sending data, etc.) avec leur durée en millisecondes.
Le graphique à barres horizontales met visuellement en évidence les phases les plus coûteuses. La colonne % indique quelle fraction du temps total consomme chaque phase. Si une phase dépasse 50 %, elle est marquée en rouge.
> Remarque :SHOW PROFILE nécessite la variable have_profiling = YES sur le serveur. Il peut ne pas être disponible dans les versions modernes de MySQL 8.0+ où il a été déprécié ; dans ce cas, utilisez plutôt Visual EXPLAIN.
Détecte les parcours complets dans le plan d'exécution et suggère des CREATE INDEX.
Où le trouver : Éditeur SQL › Index
Le Conseiller d'index demande le plan d'exécution de la requête actuelle et y cherche les parcours complets de table.
Comment l'activer : cliquez sur Index dans la barre de résultats. Calíope affiche :
1. Le plan traduit, nœud par nœud, avec le même vocabulaire et les mêmes couleurs que Visual EXPLAIN : les parcours complets ressortent en rouge.
2. Les suggestions, avec le motif et des boutons pour copier le SQL ou l'insérer dans l'éditeur. Si la requête filtre sur une colonne qu'aucun index ne couvre, la suggestion est un CREATE INDEX sur cette colonne ; si elle ne filtre sur aucune, aucun index n'évite le parcours et la suggestion le dit sous forme de commentaire, au lieu de proposer un index inutile.
S'il n'y a aucun parcours complet, un badge vert apparaît. Le conseiller couvre le cas le plus courant ; pour l'arbre entier, avec ses lignes et son détail, utilisez Visual EXPLAIN.
Visualisez le résultat d'une requête sous forme de graphique à barres, en courbes ou en secteurs.
Où le trouver : Éditeur SQL › Graphique
Le Graphique de résultat convertit les lignes d'une requête SELECT en une visualisation interactive utilisant Swift Charts.
Comment l'activer : exécutez une requête qui renvoie des données et cliquez sur Graphique dans la barre de résultats. Le panneau de graphique apparaît sous la grille.
Contrôles :
- Type : Barres, Courbes ou Secteurs
- Axe X : colonne utilisée comme étiquette (recommandé : texte ou date)
- Axe Y : colonne numérique à représenter
- Max : nombre maximum de lignes à représenter (5–500)
Le graphique détecte automatiquement les colonnes numériques et sélectionne les valeurs les plus pertinentes. Fonctionne sur macOS, iPad et iPhone.
Mesurez le temps d'exécution d'une requête SQL sur plusieurs itérations avec des statistiques détaillées.
Où le trouver : Éditeur SQL › Benchmark
Le Benchmark exécute la requête active de l'éditeur N fois et calcule des statistiques de performance, vous permettant de détecter les variations de temps et d'évaluer l'impact de changements d'index ou de structure.
Comment l'activer :
Appuyez sur le bouton Benchmark (icône de chronomètre) dans la barre d'outils de l'Éditeur SQL. Une feuille s'ouvre avec le SQL de la requête active pré-chargé.
Contrôles :
- Itérations — utilisez le pas à pas pour choisir combien de fois la requête s'exécute (1–1000, par incréments de 10). La valeur par défaut est 10 itérations.
- Démarrer le benchmark — commence l'exécution. Le bouton est désactivé si l'éditeur est vide.
- Arrêter — annule l'exécution en cours et conserve les résultats accumulés jusqu'à ce point.
Métriques affichées :
- Total — somme de tous les temps d'exécution en ms.
- Moyenne — moyenne arithmétique des temps d'exécution.
- Minimum — l'exécution la plus rapide.
- Maximum — l'exécution la plus lente.
- Écart-type — valeurs élevées indiquent une incohérence dans les temps (possible contention ou charge variable du serveur).
Graphique en barres : chaque barre représente une itération. Les barres sont colorées en vert (rapide), jaune (intermédiaire) ou rouge (lent, plus de 66 % du maximum) pour identifier visuellement les valeurs aberrantes.
Cas d'utilisation :
- Comparer le temps d'une requête avant et après la création d'un index.
- Vérifier si le serveur répond de manière cohérente sous charge.
- Mesurer l'impact des modifications de la clause WHERE ou des JOIN.