sql database cheat-sheet mysql postgresql query dev-reference

L'Aide-Mémoire SQL Ultime : Commandes, Joins et Référence des Fonctions

Un aide-mémoire SQL complet pour les développeurs. Maîtrisez SELECT, JOIN, GROUP BY et les fonctions SQL courantes avec des exemples clairs.

L'Aide-Mémoire SQL Ultime : Commandes, Joins et Référence des Fonctions

Le SQL (Structured Query Language) est le langage standard pour gérer et manipuler les bases de données relationnelles. Que vous travailliez avec MySQL, PostgreSQL, SQL Server ou SQLite, ces commandes de base constituent le fondement de vos interactions avec la base de données.

Utilisez cet aide-mémoire comme référence rapide pour la syntaxe SQL courante et les meilleures pratiques.


1. Récupération de Données de Base

La tâche SQL la plus courante consiste à récupérer des données à partir d'une table.

Commande Description Exemple
SELECT Spécifie les colonnes à récupérer SELECT nom, age
FROM Spécifie la table à partir de laquelle récupérer FROM utilisateurs
WHERE Filtre le jeu de résultats en fonction d'une condition WHERE age > 18
ORDER BY Trie le jeu de résultats (ASC ou DESC) ORDER BY created_at DESC
LIMIT Limite le nombre de lignes retournées LIMIT 10
DISTINCT Retourne uniquement des valeurs uniques SELECT DISTINCT ville

Exemple de Requête :

SELECT nom, email
FROM utilisateurs
WHERE pays = 'FR'
ORDER BY nom ASC
LIMIT 5;

2. SQL Joins : Combiner des Données

Les Joins vous permettent de récupérer des données de plusieurs tables en fonction d'une colonne liée.

  • INNER JOIN : Retourne les lignes lorsqu'il y a une correspondance dans les deux tables.
  • LEFT (OUTER) JOIN : Retourne toutes les lignes de la table de gauche, et les lignes correspondantes de la table de droite.
  • RIGHT (OUTER) JOIN : Retourne toutes les lignes de la table de droite, et les lignes correspondantes de la table de gauche.
  • FULL (OUTER) JOIN : Retourne les lignes lorsqu'il y a une correspondance dans l'une des tables.

Exemple de Join :

SELECT commandes.id, utilisateurs.nom
FROM commandes
INNER JOIN utilisateurs ON commandes.utilisateur_id = utilisateurs.id;

3. Agrégation et Groupement

Les fonctions d'agrégation effectuent un calcul sur un ensemble de valeurs et retournent une valeur unique.

Fonction Description
COUNT() Retourne le nombre de lignes
SUM() Retourne la somme totale d'une colonne numérique
AVG() Retourne la valeur moyenne
MIN() Retourne la plus petite valeur
MAX() Retourne la plus grande valeur

GROUP BY et HAVING : GROUP BY est utilisé avec des fonctions d'agrégation pour grouper le jeu de résultats par une ou plusieurs colonnes. HAVING est utilisé pour filtrer les groupes.

SELECT departement, COUNT(*)
FROM employes
GROUP BY departement
HAVING COUNT(*) > 5;

4. Modification de Données (DML)

Commandes pour ajouter, mettre à jour et supprimer des données.

  • INSERT : Ajouter de nouvelles lignes.
    INSERT INTO utilisateurs (nom, email) VALUES ('Jean Dupont', '[email protected]');
    
  • UPDATE : Modifier des lignes existantes.
    UPDATE utilisateurs SET email = '[email protected]' WHERE id = 1;
    
  • DELETE : Supprimer des lignes.
    DELETE FROM utilisateurs WHERE id = 1;
    

5. Définition de Schéma (DDL)

Commandes pour définir et gérer la structure de la base de données.

  • CREATE TABLE : Créer une nouvelle table.
    CREATE TABLE produits (
      id INT PRIMARY KEY,
      nom VARCHAR(100),
      price DECIMAL(10, 2)
    );
    
  • ALTER TABLE : Modifier la structure d'une table existante (ajouter/supprimer des colonnes).
    ALTER TABLE utilisateurs ADD last_login TIMESTAMP;
    
  • DROP TABLE : Supprimer une table et toutes ses données.
    DROP TABLE temp_data;
    
  • Indexes (Index) : Utilisés pour accélérer la récupération des données.
    CREATE INDEX idx_user_email ON utilisateurs(email);
    

Questions Fréquentes (FAQ)

Q : SQL vs NoSQL : Lequel choisir ?

A : Utilisez SQL (Relationnel) lorsque vos données sont structurées, que vous avez besoin de jointures complexes et que la conformité ACID est une priorité. Utilisez NoSQL (Non relationnel) pour les données non structurées, les exigences de haute évolutivité et les cycles de développement rapides où les schémas changent fréquemment.

Q : Quelles sont les meilleures pratiques pour la conception de bases de données ?

A :

  1. Normalisation : Réduire la redondance des données.
  2. Conventions de Nommage : Utilisez des noms cohérents, en minuscules, séparés par des underscores.
  3. Clés Primaires : Chaque table doit avoir un identifiant unique.
  4. Utilisez les Index à bon escient : Ils accélèrent les lectures mais ralentissent les écritures.

Q : Qu'est-ce qu'une injection SQL et comment puis-je la prévenir ?

A : L'injection SQL est une vulnérabilité où un attaquant peut exécuter des instructions SQL malveillantes. Prévention : Ne concaténez jamais les entrées utilisateur directement dans les requêtes. Utilisez des Requêtes Préparées (Requêtes Paramétrées) fournies par le pilote de base de données de votre langage de programmation.

Q: Comment puis-je optimiser les performances SQL ?

A :

  • Évitez SELECT * ; récupérez uniquement les colonnes dont vous avez besoin.
  • Utilisez EXPLAIN pour analyser les plans d'exécution des requêtes.
  • Assurez-vous d'un indexage approprié sur les colonnes utilisées dans les clauses WHERE et JOIN.
  • Évitez d'utiliser des sous-requêtes lorsqu'un JOIN est plus efficace.

Outils Associés sur Tool3M

  • Formateur SQL : Nettoyez et formatez vos requêtes SQL pour une meilleure lisibilité.
  • JSON vers CSV : Convertissez vos exports de base de données entre les formats JSON et CSV.