Apparence
Concepteur visuel de requêtes
Il construit un SELECT par glisser-déposer plutôt qu’en tapant, et vous montre le SQL au fur et à mesure. Il y a trois façons de l’ouvrir :
- Clic droit sur une base dans la barre latérale, puis Concepteur visuel de requêtes.
- Concepteur de requêtes dans la barre d’outils principale, à côté du profileur — il s’ouvre sur la connexion et la base dans lesquelles vous travaillez déjà.
- Concepteur de requêtes dans la barre d’outils de l’éditeur SQL — de même, sauf qu’il charge sur le canevas le SQL déjà présent dans l’éditeur.
Construire une requête
- Ajouter des tables — cliquez sur + à côté d’une table pour la placer sur le canevas.
- Les joindre — faites glisser une colonne d’une table vers une colonne d’une autre. NabuSQL ajoute la condition de jointure.
- Choisir le type de jointure — chaque jointure est étiquetée et peut être
INNER,LEFT,RIGHTouFULL. - Choisir les colonnes — cochez les colonnes souhaitées dans le résultat.
- Filtrer — ajoutez des conditions
WHEREavec les opérateurs=,!=,>,<,>=,<=,LIKE,IS NULL,IS NOT NULL,IN. - Grouper et trier — définissez les colonnes
GROUP BYetORDER BY.
Le SQL généré se met à jour au fil de votre travail.
Choisir la cible d’exécution
Les sélecteurs de connexion et de base se trouvent à droite de la barre d’outils du concepteur, ce qui permet de le diriger ailleurs sans le fermer. Les tables appartiennent à une seule base, donc changer l’un ou l’autre sélecteur vide le canevas — NabuSQL demande d’abord s’il y a quelque chose à perdre.
Le concepteur conserve son état lorsque vous passez à un autre onglet puis revenez : la disposition du canevas, les jointures, les conditions et les résultats exécutés sont toujours là.
Enregistrer la requête
Enregistrer la requête demande un nom et stocke le résultat comme n’importe quelle autre requête : elle apparaît dans la barre latérale sous connexion → base → Requêtes, où vous pouvez l’ouvrir, l’exécuter et la modifier. Enregistrer sous un nom qui existe déjà sur la même connexion et la même base met à jour cette requête au lieu d’en créer une seconde.
Si la connexion a un Dossier des requêtes configuré, la requête y est aussi écrite sous forme de fichier .sql — voir Déplacer connexions et requêtes. Le fichier est écrit en premier : en cas d’échec, rien n’est enregistré et vous obtenez l’erreur plutôt qu’une fausse confirmation.
Une fois enregistrée, l’onglet prend le nom de la requête et l’enregistrement suivant propose à nouveau ce nom.
Ouvrir du SQL existant dans le concepteur
Le bouton Concepteur de requêtes de l’éditeur SQL envoie le texte de l’éditeur — ou seulement la sélection, s’il y en a une — dans un nouvel onglet de concepteur, qui le retranscrit en tables, jointures, colonnes, conditions, regroupements et tris. Les alias de tables sont résolus vers les tables qu’ils représentent.
Il comprend le même sous-ensemble que celui qu’il écrit : un seul SELECT avec jointures, WHERE, GROUP BY, ORDER BY et une limite de lignes. Tout ce qui va au-delà — sous-requêtes, colonnes calculées et appels de fonctions, HAVING, UNION, NOT IN / NOT LIKE, conditions de jointure comportant plus d’une comparaison, OFFSET — est omis et nommé dans une barre d’avertissement au-dessus du canevas, de sorte que ce que vous voyez n’est jamais discrètement une autre requête que celle de départ. Si rien ne peut être lu, vous obtenez un message, et le SQL reste intact dans l’onglet d’éditeur d’origine.
Le SQL généré
Les identifiants sont entourés comme votre serveur l’attend : accents graves pour MySQL et MariaDB, guillemets doubles pour PostgreSQL et SQLite, crochets pour SQL Server. Les noms qualifiés par un schéma sont entourés partie par partie, donc dbo.accessory devient [dbo].[accessory].
Les limites de lignes suivent la même règle — SQL Server reçoit SELECT TOP n, tous les autres LIMIT n.
Les valeurs dans les conditions sont échappées, donc une apostrophe dans O'Brien est doublée au lieu de casser la requête. Les colonnes numériques sont comparées à des nombres sans guillemets, ce qu’exige PostgreSQL. Dans une condition IN, vous saisissez une liste séparée par des virgules ; tout ce que vous entourez vous-même de guillemets est conservé tel que saisi.
Utiliser le résultat
Le bouton ▶ exécute la requête et affiche les lignes sous le canevas. Pour aller plus loin, copiez-la dans un onglet d’éditeur SQL pour l’affiner, ou collez-la dans une définition de vue — voir Vues.
Ce pour quoi il est utile
Le concepteur donne le meilleur de lui-même lorsque vous explorez un schéma que vous connaissez mal : vous voyez quelles colonnes se joignent à quelles autres, et obtenez un SELECT multi-tables correct sans chercher chaque clé étrangère à la main.
Il génère du SQL simple et lisible — pas de format propriétaire qui vous enferme, et rien ne vous empêche de modifier le résultat à la main ensuite.
Limites
Il construit des instructions SELECT. Sous-requêtes, fonctions de fenêtrage, UNION, CTE, INSERT/UPDATE/DELETE et tout ce qui est propre à un moteur relèvent de l’éditeur SQL. FULL JOIN est proposé, mais MySQL et MariaDB ne le prennent pas en charge — c’est le serveur qui rejettera cette requête, pas NabuSQL.
Si vous préférez décrire la requête avec des mots plutôt que la dessiner, l’assistant IA est l’autre chemin vers le même résultat.
