◯ Gratuit : 5 utilisations/jour • Réinitialisation dans 17h 9m
Développement & Technique

Générateur de requêtes SQL

Décrivez ce dont vous avez besoin en anglais simple et obtenez une requête SQL correcte et lisible pour PostgreSQL, MySQL, SQLite, SQL Server, BigQuery ou Snowflake — en respectant votre schéma, chaque clause étant expliquée ainsi que des notes sur les index et les performances.

En savoir plus

Le Générateur de requêtes SQL transforme une question — « revenus mensuels par pays pour 2025, uniquement les clients avec plus de trois commandes » — en une requête écrite pour la base de données que vous utilisez : PostgreSQL, MySQL et MariaDB, SQLite, SQL Server, BigQuery ou Snowflake. Collez vos tables et colonnes et la requête utilise exactement ces noms ; laissez le schéma vide et il indique les hypothèses qu’il a faites. Vous choisissez le style (CTE lisibles, compact ou analytique avec fonctions de fenêtre) et le niveau d’explication souhaité, et chaque réponse se termine par la forme du résultat et les index qui le rendraient rapide. Il ne génère jamais d’instructions destructrices sauf si vous les demandez.

0 / 4000
0 / 10000

✓ Gratuit — sans inscription, sans carte bancaire.

Tous publics

Revenu mensuel par pays, uniquement les clients actifs

Un rapport financier avec un filtre client de type HAVING

Voir l’aperçu de l’entrée et de la sortie

Entrée

Que doit renvoyer la requête ?
Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
Tables et colonnes (facultatif)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
Dialecte SQL
PostgreSQL
Style de requête
Lisible (CTE, une clause par ligne)
Explication
Bref

Sortie (extrait)

```sql
WITH active_customers AS (
  SELECT o.customer_id
  FROM orders AS o
  WHERE o.created_at >= DATE '2025-01-01'
    AND o.created_at <  DATE '2026-01-01'
  GROUP BY o.customer_id
  HAVING COUNT(*) > 3
)
SELECT
  DATE_TRUNC('month', o.created_at)::date AS month,
  c.country,
  SUM(o.total_cents) / 100.0            AS revenue
FROM orders AS o
JOIN active_customers AS a ON a.customer_id = o.customer_id
JOIN customers        AS c ON c.id = o.customer_id
WHERE o.created_at >= DATE '2025-01-01'
  AND o.created_at <  DATE '2026-01-01'
GROUP BY 1, 2
ORDER BY month, revenue DESC;
```

**Schéma utilisé tel quel.**

Le CTE trouve les clients avec plus de trois commandes en 2025 ; la requête principale ne conserve que leurs commandes, tronque chaque commande à son mois et somme le revenu par mois et par pays. L'intervalle de dates est demi‑ouvert, ainsi le 31 décembre est compté une seule fois…
Développeurs

Dernière commande par client

Une requête à fonctions de fenêtre remplaçant une sous‑requête corrélée

Voir l’aperçu de l’entrée et de la sortie

Entrée

Que doit renvoyer la requête ?
For every customer, their most recent order with its total and date.
Tables et colonnes (facultatif)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, email text)
Dialecte SQL
MySQL / MariaDB
Style de requête
Analytique (fonctions de fenêtre lorsque c’est utile)
Explication
Détaillé (clause par clause)

Sortie (extrait)

```sql
WITH ranked AS (
  SELECT
    o.customer_id,
    o.id          AS order_id,
    o.total_cents,
    o.created_at,
    ROW_NUMBER() OVER (PARTITION BY o.customer_id ORDER BY o.created_at DESC, o.id DESC) AS rn
  FROM orders AS o
)
SELECT c.id AS customer_id, c.email, r.order_id, r.total_cents / 100.0 AS total, r.created_at
FROM customers AS c
JOIN ranked AS r ON r.customer_id = c.id AND r.rn = 1
ORDER BY r.created_at DESC;
```

**Schéma utilisé tel quel.**

| Clause | Ce qu'elle fait |
|---|---|
| `ROW_NUMBER() OVER (PARTITION BY … ORDER BY created_at DESC, id DESC)` | numérote les commandes de chaque client du plus récent au plus ancien ; le critère de rupture id rend le résultat déterministe |
| `JOIN ranked … AND r.rn = 1` | conserve exactement une ligne par client |…

Vos résultats Générateur de requêtes SQL apparaîtront ici

Attendez-vous à des blocs de code propres avec des commentaires, ainsi qu'une brève explication des changements.

Comment utiliser Générateur de requêtes SQL

  1. Formulez la question comme vous le feriez à un collègue : quelles lignes, quels filtres, quel groupement, quel ordre.
  2. Collez vos tables et colonnes si vous les avez — une table par ligne avec ses colonnes entre parenthèses. La requête utilise alors vos noms réels et ne nécessite aucune modification.
  3. Choisissez le dialecte que vous utilisez ; les fonctions de date, LIMIT versus TOP et les citations diffèrent entre PostgreSQL, MySQL, SQLite, SQL Server, BigQuery et Snowflake.
  4. Choisissez l'explication 'Détaillé' lorsque vous apprenez ou examinez la demande de quelqu'un d'autre, 'Requête uniquement' lorsque vous savez ce que vous avez demandé.

Cas d'utilisation

1

Répondre à une question métier d'un analyste sans attendre l'équipe data.

2

Transformer une demande de reporting en une requête qui respecte le schéma réel de l'entrepôt.

3

Réécrire une requête lente en une version CTE lisible avec les index nécessaires.

4

Convertir une requête de MySQL vers PostgreSQL ou BigQuery lors d'une migration.

5

Rédiger le SELECT qui prévisualise ce qu'un UPDATE ou DELETE toucherait avant de l'exécuter.

Conseils pour de meilleurs résultats

  • Incluez les types de colonnes dans le schéma (created_at timestamp, total_cents integer) et la requête gère correctement les dates et les montants.
  • Dites explicitement 'only' et 'at least' — 'clients avec plus de 3 commandes' devient une clause HAVING, pas une clause WHERE.
  • Pour un tableau de bord, demandez le style analytique : les fonctions de fenêtre évitent les auto‑joins qui ralentissent les rapports.
  • Lisez la section performance ; elle indique l'index qui transforme un scan complet de table en recherche.

Questions fréquentes

Quelles bases de données sont prises en charge ?

PostgreSQL, MySQL et MariaDB, SQLite, SQL Server (T‑SQL), BigQuery et Snowflake. La requête utilise les fonctions et la syntaxe propres à ce dialecte — troncature de date, LIMIT ou TOP, citations et agrégation de chaînes diffèrent, et la sortie est générée pour celui que vous avez sélectionné.

Dois‑je coller mon schéma ?

Non, mais cela aide. Avec un schéma, la requête utilise vos noms exacts de tables et de colonnes et ne nécessite aucune modification. Sans schéma, l'outil suppose un schéma minimal plausible et liste chaque hypothèse au-dessus de l'explication afin que vous puissiez la corriger.

Écrira‑t‑il un DELETE ou UPDATE ?

Seulement lorsque vous demandez explicitement une modification. Même dans ce cas, il encapsule l'instruction dans une transaction et place le SELECT qui prévisualise les lignes affectées en premier, afin que vous puissiez vérifier avant de valider.

Comment gère‑t‑il les dates et les montants ?

Les dates utilisent les fonctions natives de troncature et de comparaison du dialecte, et les intervalles sont écrits comme des demi‑ouvertures afin qu'aucun jour ne soit compté deux fois. L'argent stocké en centimes entiers reste entier jusqu'à la division finale, et la forme du résultat indique l'unité de chaque colonne.

La requête est‑elle garantie d'être rapide ?

Elle est rédigée pour être d'abord correcte puis lisible, et chaque réponse se termine par les index qui la rendraient rapide ainsi que les constructions qui empêcheraient l'utilisation d'index. Exécutez‑la sur un volume de données réaliste avant de la planifier — seule votre base de données connaît ses statistiques.

🔒
Votre vie privée est protégée

Nous conservons votre saisie et le résultat pendant 90 jours au maximum pour faire fonctionner le service, prévenir les abus et, si vous êtes connecté, afficher votre historique. Ils sont traités par les fournisseurs d'IA indiqués dans notre politique de confidentialité. Nous ne les vendons pas.

Outils associés

Essayer cet agent

Constructeur de MarqueGénérez des noms de marque, créez un slogan, rédigez votre histoire de marque et définissez les…Essayer cet agent →

Workflow associé

Publiez une Vidéo LongueIdée → script → miniature → télécharger les métadonnées en une seule sessionLancer le workflow →