Menu
Coddy logo textTech

Aide-mémoire SQL

Dernière mise à jour

Interroger des données (SELECT)

Le cœur de SQL : lire des lignes depuis une ou plusieurs tables.

OpérationSyntaxe
Sélectionner toutes les colonnesSELECT * FROM users;
Sélectionner des colonnes précisesSELECT id, name FROM users;
Renommer une colonne (alias)SELECT name AS full_name FROM users;
Valeurs distinctesSELECT DISTINCT country FROM users;
Limiter les lignesSELECT * FROM users LIMIT 10;
Sauter puis limiter (pagination)SELECT * FROM users LIMIT 10 OFFSET 20;
Compter les lignesSELECT COUNT(*) FROM users;

Filtrer les lignes (WHERE)

Restreindre les lignes qu'une requête renvoie.

OpérationSyntaxe
Égalité / comparaisonWHERE age >= 18
Plusieurs conditionsWHERE age >= 18 AND country = 'US'
L'une ou l'autre conditionWHERE role = 'admin' OR role = 'owner'
Dans un ensembleWHERE country IN ('US', 'CA', 'MX')
Dans une plageWHERE price BETWEEN 10 AND 50
Correspondance de motifWHERE email LIKE '%@gmail.com'
Est / n'est pas nullWHERE deleted_at IS NULL
NégationWHERE status NOT IN ('archived')

Trier et regrouper

OpérationSyntaxe
Trier croissant (par défaut)ORDER BY created_at
Trier décroissantORDER BY created_at DESC
Trier sur plusieurs colonnesORDER BY country, name DESC
Regrouper les lignesSELECT country, COUNT(*) FROM users GROUP BY country;
Filtrer les groupesGROUP BY country HAVING COUNT(*) > 100

Jointures

Combiner les lignes de deux tables selon une colonne correspondante.

Type de jointureRenvoieSyntaxe
INNER JOINUniquement les lignes correspondant dans les deux tablesFROM orders o INNER JOIN users u ON o.user_id = u.id
LEFT JOINToutes les lignes de gauche + correspondances (sinon null)FROM users u LEFT JOIN orders o ON o.user_id = u.id
RIGHT JOINToutes les lignes de droite + correspondancesFROM orders o RIGHT JOIN users u ON o.user_id = u.id
FULL OUTER JOINToutes les lignes des deux côtésFROM a FULL OUTER JOIN b ON a.id = b.a_id
CROSS JOINToutes les combinaisons (produit cartésien)FROM sizes CROSS JOIN colors
Auto-jointureUne table jointe à elle-mêmeFROM employees e JOIN employees m ON e.manager_id = m.id

Fonctions d'agrégation

Calculer une valeur unique sur un groupe de lignes.

FonctionCe qu'elle fait
COUNT(*)Nombre de lignes
COUNT(col)Nombre de valeurs non nulles
SUM(col)Total d'une colonne numérique
AVG(col)Valeur moyenne
MIN(col) / MAX(col)Plus petite / plus grande valeur
STRING_AGG(col, ',')Concaténer des valeurs (Postgres ; GROUP_CONCAT dans MySQL)

Fonctions de fenêtrage

Calculer sur un ensemble de lignes sans les réduire à une seule.

FonctionSyntaxe
Numéro de ligneROW_NUMBER() OVER (ORDER BY score DESC)
Rang (avec écarts)RANK() OVER (PARTITION BY country ORDER BY score DESC)
Rang denseDENSE_RANK() OVER (ORDER BY score DESC)
Total cumuléSUM(amount) OVER (ORDER BY created_at)
Ligne précédente / suivanteLAG(score) OVER (ORDER BY date), LEAD(score) OVER (...)

Modifier des données (INSERT, UPDATE, DELETE)

OpérationSyntaxe
Insérer une ligneINSERT INTO users (name, email) VALUES ('Ada', 'ada@x.com');
Insérer plusieurs lignesINSERT INTO users (name) VALUES ('Ada'), ('Alan');
Mettre à jour des lignesUPDATE users SET active = true WHERE id = 1;
Supprimer des lignesDELETE FROM users WHERE active = false;
Upsert (Postgres/SQLite)INSERT ... ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name;

Définir des tables (DDL)

OpérationSyntaxe
Créer une tableCREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);
Ajouter une colonneALTER TABLE users ADD COLUMN age INTEGER;
Supprimer une colonneALTER TABLE users DROP COLUMN age;
Supprimer une tableDROP TABLE users;
Créer un indexCREATE INDEX idx_users_email ON users (email);
Clé étrangèreFOREIGN KEY (user_id) REFERENCES users (id)

Chaque instruction, clause et jointure SQL dont vous avez besoin, sur une seule page. Cet aide-mémoire SQL est une référence rapide pour interroger et modifier des données relationnelles - les clauses SELECT, les quatre types de JOIN, l'agrégation, ainsi que le DDL et le DML que vous utilisez pour créer et mettre à jour des tables.

La syntaxe présentée ici est du SQL ANSI standard et fonctionne dans PostgreSQL, MySQL, SQLite et SQL Server sauf mention contraire. Copiez ce dont vous avez besoin, ou essayez chaque requête en direct dans le playground SQL - aucune base de données à installer.

FAQ de l'aide-mémoire SQL

Cet aide-mémoire SQL est-il gratuit ?
Oui. Cet aide-mémoire SQL est entièrement gratuit, sans inscription. Mettez-le en favori et revenez dès que vous devez retrouver une clause, une jointure ou une fonction.
Cela fonctionne-t-il pour MySQL, PostgreSQL et SQLite ?
Oui, pour l'essentiel. La syntaxe SELECT, WHERE, JOIN, GROUP BY et DDL présentée ici est du SQL ANSI standard et s'exécute de la même façon dans MySQL, PostgreSQL, SQLite et SQL Server. Quelques fonctionnalités avancées diffèrent selon le dialecte - les upserts et l'agrégation de chaînes sont les plus courantes - et ces lignes signalent la différence.
Quelle est la différence entre INNER JOIN et LEFT JOIN ?
Un INNER JOIN ne renvoie que les lignes ayant une correspondance dans les deux tables. Un LEFT JOIN renvoie chaque ligne de la table de gauche (la première), en remplissant NULL pour les colonnes de la table de droite lorsqu'il n'y a pas de correspondance - utile quand vous voulez tous les utilisateurs même si certains n'ont aucune commande.
Puis-je m'entraîner à ces commandes SQL en ligne ?
Oui. Ouvrez le playground SQL pour exécuter n'importe quelle requête de cet aide-mémoire sur une vraie base de données dans votre navigateur - sans installation. Quand vous voulez de la structure, le cours SQL interactif gratuit de Coddy vous emmène de SELECT aux jointures et aux fonctions de fenêtrage, étape par étape.
Cet aide-mémoire convient-il aux débutants ?
Oui. Il est organisé des opérations les plus courantes (interrogation et filtrage) jusqu'aux plus avancées (fonctions de fenêtrage), pour que vous puissiez utiliser les premières sections dès le premier jour et progresser vers le reste.
Coddy programming languages illustration

Apprenez SQL avec Coddy

COMMENCER