Maison  >  Article  >  base de données  >  Comment paginer dans Oracle

Comment paginer dans Oracle

PHPz
PHPzoriginal
2023-05-12 09:23:0614707parcourir

Oracle est un système de gestion de base de données largement utilisé qui prend entièrement en charge le standard du langage SQL. Dans de nombreux scénarios, nous devons afficher les résultats des requêtes dans des pages pour faciliter la gestion et la visualisation des données. Ensuite, cet article présentera comment Oracle effectue les opérations de pagination.

1. Utilisez ROWNUM pour la pagination

Oracle fournit une fonction ROWNUM, qui peut identifier chaque ligne de l'ensemble de résultats renvoyé comme une valeur unique, le numéro de la valeur à partir de 1 et augmentant en séquence. Cette fonction a les caractéristiques suivantes :

  1. Le résultat renvoyé contient la colonne ROWNUM, qui est utilisée pour enregistrer le numéro de ligne de la ligne de données.
  2. La règle de calcul de ROWNUM est de commencer à compter lorsque les N premières lignes de données qui remplissent les conditions sont renvoyées après la condition WHERE spécifiée par l'utilisateur et le tri ORDER BY.
  3. Ne peut effectuer qu'une seule vérification de valeur et renvoyer des lignes d'enregistrement qualifiées, et ne peut pas être utilisé pour des opérations de pagination de requêtes continues.

Ensuite, nous pouvons utiliser la fonction ROWNUM pour effectuer des opérations de pagination de données. Les étapes spécifiques d'implémentation sont les suivantes :

  1. Écrire une requête SQL. et spécifiez que la pagination est requise. L'ensemble de résultats de données.
  2. Utilisez la fonction ROWNUM en fonction du jeu de résultats de la requête et spécifiez le nombre de lignes à interroger et le nombre de lignes de départ.

Par exemple :

SELECT FROM (SELECT A., ROWNUM RN FROM (SELECT * FROM user_data ORDER BY user_id) A WHERE ROWNUM <= 20) WHERE RN >= 1;

Dans l'instruction SQL ci-dessus, une instruction de sous-requête est utilisée pour interroger toutes les données de la table user_data et trier par le champ user_id. Enfin, utilisez la fonction ROWNUM basée sur le jeu de résultats de la requête et limitez le nombre de lignes renvoyées dans le jeu de résultats de la requête à 20 lignes. Le résultat de l'utilisation de l'instruction SQL ci-dessus correspond aux enregistrements de données de la ligne 1 à la ligne 20.

2. Utilisez OFFSET...FETCH pour la pagination

En réponse aux limitations de la méthode de pagination ROWNUM, Oracle a fourni une nouvelle méthode de pagination, OFFSET, à partir de la version 12c Syntaxe FETCH entre parenthèses. Par rapport à la fonction ROWNUM, les caractéristiques de la syntaxe OFFSET FETCH sont :

  1. ne dépend pas du numéro de ligne, mais de la valeur de la séquence de traitement spécifiée par ON (OFFSET fait référence au décalage) et la valeur LIMIT (FETCH fait référence au nombre de lignes récupérées) pour obtenir l'ensemble de résultats.
  2. Peut interroger en continu les données de pagination, ce qui convient à de grandes quantités de données.
  3. Les résultats des requêtes utilisant la syntaxe OFFSET FETCH ne seront pas affectés par les instructions WHERE et ORDER BY.

La méthode d'utilisation spécifique est la suivante :

SELECT * FROM user_data ORDER BY user_id OFFSET 0 ROWS FETCH NEXT 20 ROWS UNIQUEMENT ;

#🎜 🎜# Dans l'instruction SQL ci-dessus, la syntaxe OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY indique que le décalage spécifié est la ligne 0 et que 20 lignes d'enregistrements de données sont obtenues.

Résumé :

Oracle propose deux méthodes de requête de données de pagination : la fonction ROWNUM et la syntaxe OFFSET FETCH. La fonction ROWNUM convient aux situations où la quantité de données est faible et où l'opération de pagination ne doit être effectuée qu'une seule fois. La syntaxe OFFSET FETCH convient aux situations où la quantité de données est importante et où plusieurs paginations doivent être interrogées en continu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Oracle supprimer la connexionArticle suivant:Oracle supprimer la connexion