Écrire des requêtes SQL
Le type d’onglet interne le plus courant est l’onglet Requête, qui contient les éléments suivants. Les raccourcis clavier ci-dessous sont les valeurs par défaut sous Windows/Linux ; sur macOS, les raccourcis propres à OmniDB utilisent Ctrl au lieu d’Alt. Tous peuvent être modifiés sous Paramètres > Raccourcis.

- 1) En-tête de l’onglet : vous y voyez le nom de l’onglet et, au survol, une icône permettant de le fermer. Pendant qu’une requête s’exécute dans l’onglet, un indicateur de chargement s’affiche ; si elle se termine pendant que vous travaillez sur un autre onglet, une coche s’affiche. Un clic droit sur l’onglet, suivi du choix de Renommer l’onglet, permet de le renommer.
- 2) Ajouter un onglet : vous pouvez rapidement ajouter un autre onglet interne (Onglet de requête ou Onglet de console) en cliquant sur l’icône plus.
- 3) Éditeur SQL : éditeur SQL complet avec coloration syntaxique SQL, repliement du
code, rechercher et remplacer (
Ctrl-FetCtrl-H), une ligne de repère verticale (sa colonne se règle sous Paramètres > Formatage) et un composant d’autocomplétion, décrit ci-dessous. Un clic droit dans l’éditeur propose Copier, Enregistrer comme extrait et Utiliser l’extrait (voir Extraits). Consultez Raccourcis clavier de l’éditeur pour la liste complète des raccourcis de l’éditeur (sélection, curseurs multiples, navigation, repliement, etc.). - 4) Exécuter : le texte contenu dans l’éditeur SQL est exécuté sur la
base de données active lorsque vous cliquez sur ce bouton (ou appuyez sur
Alt-Q). Si du texte est sélectionné dans l’éditeur SQL, seul le texte sélectionné est exécuté. L’éditeur peut contenir plusieurs instructions séparées par des points-virgules ; elles s’exécutent l’une après l’autre et la grille affiche le résultat de la dernière. Pendant l’exécution de la commande, un bouton rouge Annuler s’affiche, permettant d’annuler l’exécution (ou appuyez surAlt-C). - 5) Exécuter l’instruction au curseur : exécute uniquement l’instruction dans laquelle se trouve
le curseur, sans avoir à la sélectionner au préalable. Avec le curseur juste après un
;, c’est l’instruction suivante qui est exécutée. - 6) Indenter le SQL : ce bouton met en forme tout code SQL écrit dans l’éditeur
SQL (raccourci
Alt-S), selon le style choisi sous Paramètres > Formatage (indentation, style de virgule, casse des mots-clés). - 7) Historique des commandes : toutes les commandes exécutées sur la connexion actuelle sont enregistrées dans l’historique des commandes, accessible en cliquant sur ce bouton. Vous pouvez le filtrer par plage de dates et par texte pour retrouver la commande SQL dont vous avez besoin.
- 8) Explain (PostgreSQL uniquement) : exécute votre requête SQL précédée de
EXPLAIN(raccourciAlt-W). Les résultats sont affichés sous forme textuelle et graphique dans l’onglet Explain (voir Visualiser les plans d’exécution pour plus de détails). - 9) Explain Analyze (PostgreSQL uniquement) : identique au bouton Explain, mais exécute la
requête SQL avec
EXPLAIN (ANALYZE, BUFFERS), ce qui exécute effectivement la requête (raccourciAlt-E). - 10) Validation automatique (PostgreSQL uniquement) : lorsqu’elle est activée, chaque requête exécutée est validée dans la base de données. Lorsqu’elle est désactivée, OmniDB démarre une transaction et, après l’exécution d’une requête, l’interface affiche des boutons permettant à l’utilisateur de Valider (Commit) ou d’Annuler (Rollback). L’utilisateur peut aussi garder la transaction ouverte et exécuter d’autres commandes.
- 11) État du processus serveur (PostgreSQL uniquement) : lorsque vous ouvrez un nouvel onglet Requête, l’état est Non connecté, car OmniDB n’a pas encore démarré de processus serveur PostgreSQL. Lorsque vous exécutez la première requête, OmniDB démarre un nouveau processus serveur et le garde lié à l’onglet Requête (chaque onglet Requête dispose de son propre processus serveur). L’état du processus serveur (Inactif, En cours d’exécution, Inactif dans une transaction, etc.) est affiché dans ce champ. Lorsque vous fermez l’onglet Requête, OmniDB termine le processus serveur.
- 12) Type de fichier d’export : CSV, TSV, XLSX, JSON, XML ou Markdown.
- 13) Exporter les données : en cliquant sur ce bouton, OmniDB exécute la requête actuelle et exporte l’intégralité du résultat dans un fichier du type choisi. Dans l’application de bureau, une boîte de dialogue native Enregistrer sous s’ouvre pour que vous choisissiez directement où l’enregistrer, et OmniDB confirme par Fichier exporté vers : …. Lorsqu’OmniDB fonctionne en tant qu’OmniDB Server accessible depuis un navigateur, le fichier est d’abord écrit dans le dossier temporaire du serveur, puis la zone de résultat affiche Le fichier est prêt. avec un lien Enregistrer qui le télécharge via le navigateur. L’encodage CSV/TSV et le délimiteur CSV se règlent sous Paramètres > Export.
- 14) Résultats (Données) : si la requête est un
SELECT, une grille affiche les résultats ; la première colonne reste figée pendant le défilement horizontal, et le survol d’un en-tête de colonne affiche son nom complet. Si la requête est une instruction DML ou DDL, le message renvoyé par le SGBD est affiché. Lorsqu’il y a plus de lignes que le premier lot, Récupérer plus charge le lot suivant et Tout récupérer le reste. Un clic droit sur une cellule propose Copier ou Voir le contenu ; les valeurs JSON et XML sont affichées avec coloration syntaxique. - 15) Messages (PostgreSQL uniquement) : tous les messages (comme ceux émis par la
commande
RAISE NOTICE) sont affichés ici. - 16) Vue Explain (PostgreSQL uniquement) : affiche un composant complet permettant de visualiser le plan d’exécution PostgreSQL sous forme textuelle ou graphique.
Le séparateur entre l’éditeur (avec sa barre d’outils) et les résultats peut être déplacé pour donner davantage de place à l’un ou à l’autre.
Confirmation de sécurité pour les instructions destructrices
Avant d’exécuter une instruction commençant par DROP ou TRUNCATE, ou un
UPDATE/DELETE sans clause WHERE, l’onglet Requête demande une
confirmation (Cette instruction est destructrice et ne peut pas être annulée. L’exécuter quand même ?, ou
Cette instruction n’a pas de clause WHERE et affectera TOUTES les lignes. L’exécuter quand même ?). Il s’agit d’un
garde-fou contre les erreurs de bonne foi, pas d’un système de permissions — seul le début du texte
(après les commentaires) est examiné.
Une fois exécutés, les onglets sont également enregistrés dans la base de données utilisateur d’OmniDB (titre et contenu) : ainsi, à la prochaine ouverture d’OmniDB, vous les retrouverez tous ouverts. De plus, chaque commande exécutée dans un onglet Requête est enregistrée dans l’historique des commandes de cette connexion.
Autocomplétion SQL
L’éditeur SQL propose une fonctionnalité très utile lors de la création de nouvelles requêtes : la complétion automatique du code SQL.
Ouvrez les suggestions avec Ctrl-Space
(Option-Space sur macOS). Elle permet de compléter automatiquement les colonnes
d’une table référencée par un alias : tapez l’alias, le caractère ., puis
ouvrez l’autocomplétion :

Si l’utilisateur démarre l’autocomplétion avec le curseur éloigné de tout alias de table, le composant affiche plusieurs catégories de données. En saisissant du texte dans le champ de filtre, les éléments de toutes les catégories sont filtrés :

Le composant d’autocomplétion est également capable d’identifier certaines
informations contextuelles. Par exemple, si vous saisissez le nom d’un schéma,
puis le caractère ., vous pourrez filtrer
uniquement parmi les objets contenus dans ce schéma :

Après :: (un transtypage PostgreSQL), seuls les types de données sont proposés. Le choix d’un mot-clé
ajoute également ce qui le suit toujours (par exemple une espace après SELECT, ou la parenthèse
ouvrante après COALESCE). Les catégories proposées (mots-clés,
bases de données, rôles, tablespaces, schémas, extensions, tables, vues, colonnes, fonctions, index) se
règlent sous Paramètres > Autocomplétion.
Veuillez noter que pour les SGBD autres que PostgreSQL, le composant d’autocomplétion ne fonctionne que pour les colonnes de tables.