27 juin 2024
 đ Cheatsheet SQL
 đ Table des MatiĂšres
  
 đ Introduction 
 SQL (Structured Query Language) est le langage standard pour gĂ©rer et manipuler des bases de donnĂ©es relationnelles. Cette cheatsheet couvre les commandes essentielles pour lâinteraction avec les bases de donnĂ©es SQL.
 đ Commandes de Base 
 | Commande | Description | 
|---|
 | SELECT | Récupérer des données | 
 | FROM | Spécifier la table | 
 | WHERE | Filtrer les résultats | 
 | ORDER BY | Trier les résultats | 
 | LIMIT | Limiter le nombre de résultats | 
 Exemple
 SELECT nom, age
FROM employes
WHERE age > 30
ORDER BY age DESC
LIMIT 10;
 Clauses de filtrage 
 | Commande | Description | 
|---|
 | WHERE | Filtrer les lignes selon une condition | 
 | AND | Combiner plusieurs conditions | 
 | OR | Choisir parmi plusieurs conditions | 
 | NOT | Nier une condition | 
 | IN | Correspondance dans une liste | 
 | BETWEEN | Plage de valeurs | 
 | LIKE | Correspondance de motif | 
 | IS NULL | Vérifier si une valeur est nulle | 
 SELECT nom, salaire
FROM employes
WHERE salaire BETWEEN 40000 AND 60000
AND nom LIKE 'J%';
 Jointures 
 | Type de Jointure | Description | 
|---|
 | INNER JOIN | Renvoie les lignes ayant des correspondances | 
 | LEFT JOIN | Renvoie toutes les lignes de la table de gauche et les correspondances de la table de droite | 
 | RIGHT JOIN | Renvoie toutes les lignes de la table de droite et les correspondances de la table de gauche | 
 | FULL JOIN | Renvoie toutes les lignes quand il y a une correspondance dans lâune ou lâautre des tables | 
 SELECT e.nom, d.nom_departement
FROM employes e
INNER JOIN departements d ON e.departement_id = d.id;
 Groupement et agrégation 
 | Commande | Description | 
|---|
 | GROUP BY | Grouper les lignes qui ont des valeurs identiques | 
 | HAVING | Filtrer les groupes | 
 | COUNT | Compter le nombre de lignes | 
 | SUM | Calculer la somme | 
 | AVG | Calculer la moyenne | 
 | MIN | Trouver la valeur minimale | 
 | MAX | Trouver la valeur maximale | 
 SELECT departement_id, AVG(salaire) AS salaire_moyen
FROM employes
GROUP BY departement_id
HAVING AVG(salaire) > 50000;
 Sous-requĂȘtes 
 | Type | Description | 
|---|
 | Sous-requĂȘte dans SELECT | Utiliser une requĂȘte dans une autre | 
 | Sous-requĂȘte dans FROM | Utiliser une requĂȘte comme une table | 
 | Sous-requĂȘte dans WHERE | Utiliser une requĂȘte pour filtrer | 
 SELECT nom, salaire
FROM employes
WHERE salaire > (SELECT AVG(salaire) FROM employes);
 Manipulation des données 
 | Commande | Description | 
|---|
 | INSERT INTO | Insérer des nouvelles lignes | 
 | UPDATE | Modifier les lignes existantes | 
 | DELETE FROM | Supprimer des lignes | 
 INSERT INTO employes (nom, salaire, departement_id)
VALUES ('Marie Dupont', 60000, 2);
UPDATE employes
SET salaire = salaire * 1.1
WHERE departement_id = 3;
DELETE FROM employes
WHERE salaire < 30000;
 Gestion des tables 
 | Commande | Description | 
|---|
 | CREATE TABLE | Créer une nouvelle table | 
 | ALTER TABLE | Modifier une table existante | 
 | DROP TABLE | Supprimer une table | 
 | CREATE INDEX | Créer un index | 
 | DROP INDEX | Supprimer un index | 
 CREATE TABLE departements (
    id INT PRIMARY KEY,
    nom_departement VARCHAR(100)
);
ALTER TABLE employes
ADD COLUMN adresse VARCHAR(255);
DROP TABLE anciennes_donnees;
 Fonctions 
 | Fonction | Description | 
|---|
 | NOW() | Obtenir la date et lâheure actuelles | 
 | COALESCE | Retourner la premiĂšre valeur non NULL | 
 | IFNULL | Retourner une valeur de remplacement si NULL | 
 | LENGTH | Longueur dâune chaĂźne | 
 | SUBSTRING | Extraire une sous-chaĂźne | 
 | ROUND | Arrondir un nombre | 
 SELECT nom, ROUND(salaire, 2) AS salaire_arrondi
FROM employes
WHERE COALESCE(adresse, 'Adresse non fournie') = 'Adresse non fournie';