Explication détaillée des principes de base de la requête de pagination Oracle

小云云
Libérer: 2023-03-17 19:52:01
original
2093 Les gens l'ont consulté

Cet article présente principalement en détail le principe de la requête de pagination Oracle et analyse la méthode de mise en œuvre à partir des exemples de données de test. Cet article analyse en détail les connaissances de base de la requête de pagination Oracle à partir du principe de requête de données et de la méthode de mise en œuvre de la pagination. voici le contenu de cet article :

Raison 1

Oracle génère par défaut des champs rowmun et rowid pour chaque table. Ces champs sont appelés pseudo-colonnes

1 Créez une table de test<.>


CREATE TABLE TEST(
ID NUMBER,
NAME VARCHAR2(20)
)
Copier après la connexion


2 Insérer les données de test


INSERT INTO TEST VALUES (1,'张三');
INSERT INTO TEST VALUES (2,'李四');
INSERT INTO TEST VALUES (3,'王五');
INSERT INTO TEST VALUES (4,'赵六');
INSERT INTO TEST VALUES (5,'郑七');
INSERT INTO TEST VALUES (6,'胡八');
INSERT INTO TEST VALUES (7,'刘九');
Copier après la connexion


3 Affichez les champs du tableau et confirmez les champs intégrés


select rowid,rownum,id,name from TEST;
Copier après la connexion


4 rowid n'est généralement pas utilisé. Oracle l'utilise en interne pour stocker l'emplacement physique des lignes. Le numéro de ligne est lié à la pagination, qui est le numéro de ligne

deux

1. Interrogez les lignes inférieures à 5 et interrogez quatre résultats


select rowid,rownum,id,name from test where rownum <5;
Copier après la connexion


2 Interrogez les lignes supérieures à 2 et moins de 5


select rownum,id,name from test where rownum>2 and rownum <5;
Copier après la connexion


Je n'ai rien trouvé, quelle est la raison ?,

rownum a le caractéristiques suivantes :

1 ROWNUM n'est applicable qu'à inférieur ou inférieur ou égal à. Si un jugement égal est porté, il ne peut être égal qu'à 1 ;

2 ROWNUM est le nombre de ; lignes allouées séquentiellement par le système Oracle. La première ligne renvoyée est allouée 1 , la deuxième ligne est 2, et ainsi de suite ;

3 ROWNUM commence toujours à 1

4 Le numéro de la première ligne de données. est 1, ce qui ne remplit pas la condition >2, alors la ligne One est supprimée et la deuxième ligne précédente devient la nouvelle première ligne. Cela continue jusqu'à la dernière ligne, et les conditions ne sont jamais remplies, donc même pas une seule. un morceau de données peut être trouvé.

3 Manière d'écrire correcte : comme elle n'est pas utilisée, utilisez la requête interne pour interroger le numéro de ligne en tant qu'ensemble de résultats et utilisez l'ensemble de résultats interne pour la comparaison dans la couche externe


select rownum,id,name from
( select rownum rn, u.* from test u where rownum<5) un
where un.rn>2
Copier après la connexion


4 Si la pagination est effectuée, par exemple, trois. lignes par page, vous devez interroger La deuxième page équivaut à vérifier 4, 5, 6 éléments. Ligne de départ 4 = (numéro de page - 1) * longueur de chaque page + 1, ligne de fin 6 = numéro de page * longueur de chacune. page


select rownum,id,name from (
  select rownum rn , t.* from test t where rownum <=6) n
where n.rn>=4
Copier après la connexion


5 De même, la requête en 4 peut être modifiée au plus structure commune à trois niveaux


select rownum,id,name from (
  select rownum rn, n.* from 
    (
     select * from test --最内层循环该怎么写怎么写
    ) n where rownum <=6 --小于限制写在第二层
  ) 
 where rn>=4
Copier après la connexion
Le contenu ci-dessus est le principe de base de la requête de pagination Oracle. J'espère qu'il pourra aider tout le monde.

Recommandations associées :

Exemple de fonction de pagination Oracle implémentée en PHP

php+oracle pagination class_PHP tutoriel

Principes et déclarations SQL des requêtes de pagination Oracle

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!