Rappel : plusieurs types de commandes SQL pour différent types d'actions :
Nous allons désormais nous intéresser aux 3 dernières.
- : lire des données ;
- : modifier des entrées ;
- : insérer des entrées ;
- : supprimer des entrées.
- : une entrée (valeurs séparées par une virgule).
- 💡 pour représenter plusieurs entrées, les séparer par une virgule.
- : les colonnes à remplir (les autres vaudront ).
- : les entrées à modifier.
- : la colonne prend la valeur .
💡 pour modifier plusieurs colonnes, les séparer par une virgule.
- : les entrées à supprimer.
Problème :
- Plusieurs manières de réprésenter une même information :
- , ,
- , , .
- Mais... valeurs non égales (e.g. pour comparaisons).
Solution :
- Pré-traiter les données pour garantir :
- l'uniformité des données manipulées (e.g. dans conditions).
- la cohérence et consistance de la base (e.g. lors ajouts/modifications).
💡 Pour tester les pré-traitements :
- sans (ou pour certains SGBD).
- avec .
⚠ Ne pas abuser des pré-traitements SQL sur les valeurs retournées par .
Si possible, mise en forme en dehors de la requête SQL.
Si possible, mise en forme en dehors de la requête SQL.
- Données structurées plus faciles à manipuler (e.g. , ) :
- //
- /
- Évite de ré-écrire plusieurs fois la "même" requête.
- SGBD ont un système de cache pour les requêtes fréquemment exécutées.
Les manipulations de dates complexes sont à effectuer :
- durée des mois variable ;
- années bissextiles ;
- fuseaux horaires ;
- heures d'été et d'hiver.
: agrège en une même ligne, les entrées de identiques.
- Les lignes contiennent plusieurs entrées, i.e. plusieurs valeurs par colonne.
- Par défaut, SQL retourne la première valeur.
- fonction d'agrégation : prend la liste des valeurs et retourne une valeur.
- 💡 Une fonction d'agrégation sans retourne une seule ligne.
- filtre les entrées avant agrégation.
- ⚠ On ne peut utiliser de fonction d'agrégation dans la condition de .
- filtre les lignes après agrégation.