Prompt GitHub Copilot pour Generer Des Requetes 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
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.
Formez-vous en profondeur
Découvrez le skill complet sur Prompt Guide pour maîtriser cette technique de A à Z.
Voir sur Prompt GuideTermes du glossaire
📬 Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter et ne manquez aucun prompt.
Prompts similaires
Générer des mocks et fixtures pour vos tests automatisés
Un prompt pour générer automatiquement des mocks, stubs et fixtures de données réalistes adaptés à votre framework de test et vos cas d'usage.
Générer des tests unitaires automatiquement avec l'IA
Génère automatiquement une suite de tests unitaires exhaustive couvrant cas nominaux, cas limites et cas d'erreur pour n'importe quel code source.
Créer un script Python d'automatisation
Créez un script Python d'automatisation professionnel avec configuration CLI, logging structuré, gestion des erreurs et tests.
Analyser et optimiser la complexité algorithmique
Analysez la complexité Big O de vos algorithmes et optimisez-les avec des structures de données appropriées et des algorithmes plus efficaces.