Ci-dessous, les différences entre deux révisions de la page.
cours:informatique:dev:db:postgres:fondamentaux_postgresql:230_clause_fetch [2025/04/06 11:54] – créée yoann | cours:informatique:dev:db:postgres:fondamentaux_postgresql:230_clause_fetch [2025/04/06 14:43] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag> | {{tag> | ||
- | :TODO: | ||
====== PostgreSQL FETCH ====== | ====== PostgreSQL FETCH ====== | ||
Ligne 7: | Ligne 6: | ||
Notes et traduction du tutoriel [[https:// | Notes et traduction du tutoriel [[https:// | ||
+ | Pour ignorer un certain nombre d' | ||
+ | |||
+ | La clause LIMIT est largement utilisée par les SGBD mais n'est pas un standard SQL. | ||
+ | |||
+ | Pour se conformer avec le standard SQL, PostgreSQL supporte la clause FETCH pour ignorer des enregistrements et récupérer un nombre voulu d' | ||
+ | |||
+ | <code sql> | ||
+ | OFFSET row_to_skip { ROW | ROWS } | ||
+ | FETCH { FIRST | NEXT } [ row_count ] { ROW | ROWS } ONLY | ||
+ | </ | ||
+ | |||
+ | * On définit le nombre d’enregistrements à ignorer via la valeur " | ||
+ | * On fournit ensuite le nombre d' | ||
+ | * Les mots clé '' | ||
+ | * Les mots clés '' | ||
+ | |||
+ | Comme évoqué pour LIMIT, les enregistrements ne sont pas ordonnés | ||
+ | |||
+ | < | ||
+ | la clause OFFSET doit être placée avant FETCH dans la norme SQL:2008 cependant les clauses OFFSET et FETCH peuvent être placées dans n' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== FETCH vs LIMIT ===== | ||
+ | |||
+ | Les clauses FETCH et LIMIT sont équivalentes. Si vous souhaitez que votre application soit compatible avec d' | ||
+ | |||
+ | <code sql> | ||
+ | -- Récupère seulement le premier enregistrement | ||
+ | SELECT | ||
+ | film_id, | ||
+ | title | ||
+ | FROM | ||
+ | film | ||
+ | ORDER BY | ||
+ | title | ||
+ | FETCH FIRST ROW ONLY; | ||
+ | |||
+ | -- Récupère 5 enregistrements avec offset | ||
+ | SELECT | ||
+ | film_id, | ||
+ | title | ||
+ | FROM | ||
+ | film | ||
+ | ORDER BY | ||
+ | title | ||
+ | OFFSET 10 ROWS | ||
+ | FETCH NEXT 5 ROWS ONLY; | ||
+ | </ | ||
===== Résumé ===== | ===== Résumé ===== | ||
+ | * Utiliser la clause PostgreSQL '' | ||