Rappel sur les requêtes multitables
- Opérateurs ensemblistes UNION, INTERSECT et EXCEPT.
- Rappel sur les jointures internes et externes.
- Maîtriser les sous-requêtes dans les différentes parties des instructions SQL.
- Corrélations des requêtes imbriquées.
- Opérations d'intra-jointure avec APPLY (CROSS, OUTER) pour les fonctions et les fragments XML.
Travaux pratiques
Résolutions de cas de requêtes mettant en action plusieurs tables.
Opérateurs particuliers
- Utilité du produit cartésien (CROSS JOIN).
- La division relationnelle.
- Groupage décisionnel avec CUBE, ROLLUP et GROUPING SET.
- Fonctions analytiques et de fenêtrage : ordonnancement et agrégat avec les clauses OVER et WINDOW.
- Tableaux croisés avec PIVOT et UNPIVOT.
- Échantillon de données avec TABLESAMPLE.
Travaux pratiques
Résolution de cas de division relationnelle. Utilisation des fonctions de groupages décisionnels. Mise en oeuvre des fonctions analytiques.
Les expressions de tables
- L'expression de table commune, Common Table Expression (CTE) ou vue non persistante.
- L'utilisation du mot-clé WITH pour spécifier une CTE.
- Les différentes techniques de requêtage dans les arborescences.
- Résolution de problèmes de graphes avec les requêtes récursives.
- Utilisation de tables de nombres et de dates (tally tables) pour résoudre des requêtes complexes.
Travaux pratiques
Exprimer des requêtes sous la forme de la CTE récursive.
L'écriture des données
- Mise à jour et suppression des données avec sous-requêtes.
- Utilisation de la syntaxe étendue de mise à jour et suppression avec jointures.
- Opérations d'insertion, de mise à jour ou de suppression à partir de résultats d'une jointure, l'opérateur MERGE.
- Récupération des données ajoutées, modifiées ou supprimées, avec la clause OUTPUT.
Travaux pratiques
Écriture de commandes de mises à jour complexes avec l'instruction MERGE et les sous-requêtes.