P
💻DeveloppementIntermediaireAll AIs

Prompt GitHub Copilot pour générer des requêtes SQL

GitHub Copilot transforme radicalement la façon dont les développeurs écrivent des requêtes SQL au quotidien. Intégré directement dans votre éditeur de code, cet assistant IA comprend le contexte de votre projet — schémas de tables, relations entre entités, conventions de nommage — pour générer des requêtes SQL précises et optimisées. Que vous travailliez avec PostgreSQL, MySQL, SQL Server ou SQLite, Copilot s'adapte à la syntaxe spécifique de votre moteur de base de données. L'enjeu n'est pas simplement de générer du SQL fonctionnel, mais d'obtenir des requêtes performantes, lisibles et maintenables. Un prompt bien structuré permet à Copilot de produire des jointures complexes, des sous-requêtes corrélées, des fonctions de fenêtrage et des requêtes d'agrégation qui respectent les bonnes pratiques. En fournissant le schéma de vos tables, le résultat attendu et les contraintes de performance, vous obtenez des requêtes prêtes pour la production plutôt que des ébauches à retravailler. Ce guide vous propose un prompt principal optimisé ainsi que des variantes adaptées à votre niveau, pour exploiter pleinement Copilot dans la génération de requêtes SQL fiables et performantes.

Coller dans votre IA

Collez ce prompt dans ChatGPT, Claude ou Gemini et personnalisez les variables entre crochets.

-- Schéma de la base de données :
-- Table: users (id INT PK, email VARCHAR, created_at TIMESTAMP, plan VARCHAR)
-- Table: orders (id INT PK, user_id INT FK->users.id, amount DECIMAL, status VARCHAR, created_at TIMESTAMP)
-- Table: order_items (id INT PK, order_id INT FK->orders.id, product_id INT, quantity INT, unit_price DECIMAL)
-- Table: products (id INT PK, name VARCHAR, category VARCHAR, price DECIMAL)

-- Moteur : PostgreSQL 15
-- Objectif : Générer une requête qui retourne le chiffre d'affaires mensuel par catégorie de produit pour les 12 derniers mois, avec le pourcentage de variation par rapport au mois précédent, en excluant les commandes annulées.
-- Contraintes : utiliser des CTE pour la lisibilité, des fonctions de fenêtrage pour le calcul de variation, et indexer les colonnes filtrées.
-- Format de sortie : mois, catégorie, chiffre_affaires, variation_pct

Personnaliser ce prompt avec Léa

Réponds à 3 questions, Léa adapte le prompt à ta situation.

Pourquoi ce prompt fonctionne

Ce prompt fonctionne parce qu'il fournit à Copilot les trois éléments essentiels : le schéma complet des tables avec les types et relations, le moteur SQL cible pour adapter la syntaxe, et une description précise du résultat attendu avec les colonnes de sortie. En spécifiant les contraintes techniques (CTE, fonctions de fenêtrage), on guide Copilot vers une implémentation conforme aux bonnes pratiques plutôt qu'une solution naïve avec des sous-requêtes imbriquées. Le format en commentaires SQL permet une intégration naturelle dans l'éditeur, où Copilot excelle à compléter le code qui suit.

Cas d'usage

Generer Des Requetes SQL

Variantes

Résultat attendu

Copilot génère une requête SQL complète utilisant des CTE pour structurer le calcul en étapes claires : d'abord le chiffre d'affaires mensuel par catégorie, puis l'application de LAG() pour calculer la variation. La requête inclut les filtres sur le statut des commandes et la période, avec des alias lisibles et un ORDER BY cohérent. Vous obtenez une requête prête à exécuter, lisible par toute l'équipe et facilement modifiable.

Questions fréquentes

Comment faire pour que GitHub Copilot comprenne le schéma de ma base de données ?

Le moyen le plus efficace est de placer vos définitions de schéma (CREATE TABLE) dans un fichier SQL ouvert dans un onglet adjacent ou dans le même fichier. Copilot analyse les fichiers ouverts comme contexte. Vous pouvez aussi écrire le schéma en commentaires SQL juste avant votre requête, comme dans le prompt principal. Pour les projets utilisant un ORM (Prisma, Drizzle, SQLAlchemy), Copilot peut également inférer le schéma depuis vos fichiers de modèles s'ils sont ouverts dans l'éditeur.

Copilot peut-il optimiser une requête SQL existante qui est trop lente ?

Oui, collez votre requête lente et ajoutez un commentaire du type « -- Optimiser cette requête : elle prend 12s sur une table de 5M lignes. Index disponibles : idx_orders_created_at, idx_orders_user_id ». Copilot peut réécrire la requête en remplaçant des sous-requêtes corrélées par des jointures, en utilisant des CTE matérialisées, ou en restructurant les conditions WHERE pour mieux exploiter les index. Cependant, pour un vrai diagnostic de performance, combinez Copilot avec EXPLAIN ANALYZE sur votre moteur SQL.

GitHub Copilot gère-t-il les différences de syntaxe entre PostgreSQL, MySQL et SQL Server ?

Copilot s'adapte au moteur SQL si vous le précisez dans le prompt. Sans indication, il tend à générer du SQL standard ou du PostgreSQL. Pour obtenir une syntaxe spécifique, indiquez le moteur et sa version en commentaire (ex: « -- MySQL 8.0 » ou « -- SQL Server 2022 »). Les différences courantes qu'il gère bien incluent : LIMIT vs TOP, les fonctions de date (DATE_TRUNC vs DATEPART), les types JSONB (PostgreSQL) vs JSON_VALUE (SQL Server), et la syntaxe des CTE récursifs qui varie selon les moteurs.

Améliorez ce prompt

Passez ce prompt dans l'Optimiseur pour renforcer le contexte, les contraintes et le format attendu.

Améliore ce prompt avec l'Optimiseur

Commentaires

  • LéaIA

    Pour améliorer la précision, précise le type de jointure entre `orders` et `order_items` (INNER JOIN si seules les commandes avec articles t'intéressent) et utilise `date_trunc('month', o.created_at)` pour l'agrégation mensuelle. Si tu souhaites inclure les catégories sans vente, remplace par LEFT JOIN sur `products`.

📬 Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter et ne manquez aucun prompt.

Pour aller plus loin

Prompts similaires

💻DeveloppementAvanceAll AIs

Prompt pour maîtriser les types avancés en TypeScript

Un prompt pour générer des types TypeScript avancés (generics, mapped types, conditional types) avec documentation et tests de types intégrés.

0218
💻DeveloppementIntermediaireAll AIs

Test d'idées d'activation

Générer des idées d'expériences d'activation

0146
💻DeveloppementIntermediaireAll AIs

Network policies pour micro-segmentation

Isoler les workloads avec des network policies

0139
💻DeveloppementAvanceAll AIs

Stratégie de rollout progressif

Déploiement progressif d'un nouveau modèle

0147