In diesem Artikel wird hauptsächlich das Prinzip der Oracle-Paging-Abfrage im Detail vorgestellt und die Implementierungsmethode anhand der Beispieltestdaten analysiert. In diesem Artikel werden die Grundkenntnisse der Oracle-Paging-Abfrage im Detail anhand des Datenabfrageprinzips und der Paging-Implementierungsmethode analysiert Im Folgenden finden Sie den Inhalt dieses Artikels:
Grund 1
Oracle generiert standardmäßig Rowmun- und Rowid-Felder für jede Tabelle. Diese Felder werden Pseudospalten genannt
1 Erstellen Sie eine Testtabelle
CREATE TABLE TEST( ID NUMBER, NAME VARCHAR2(20) )
2 Testdaten einfügen
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,'刘九');
3 Sehen Sie sich die Tabellenfelder an und bestätigen Sie die integrierten Felder
select rowid,rownum,id,name from TEST;
4 rowid wird im Allgemeinen nicht zum Speichern des physischen Speicherorts von Zeilen verwendet. Rownum ist die Zeilennummer
zwei
1. Zeilen abfragen, die kleiner als 5 sind, und vier Ergebnisse abfragen
select rowid,rownum,id,name from test where rownum <5;
2 Zeilen abfragen, die größer als sind 2 und weniger als 5
select rownum,id,name from test where rownum>2 and rownum <5;
Ich habe nichts gefunden, was ist der Grund?,
rownum hat das Folgende Merkmale gelten:
1 ROWNUM gilt nur für weniger als oder kleiner oder gleich. Bei gleicher Beurteilung kann es nur gleich 1 sein.
2 ROWNUM ist die Anzahl von Vom Oracle-System nacheinander zugewiesene Zeilen. Die erste zurückgegebene Zeile ist 1, die zweite Zeile ist 2 usw.
3 ROWNUM beginnt immer bei 1
4 Die erste Datenzeilennummer ist 1, was die Bedingung von >2 nicht erfüllt, dann wird die eine Zeile entfernt und die vorherige zweite Zeile wird zur neuen ersten Zeile. Dies wird bis zur letzten Zeile fortgesetzt, und die Bedingungen werden nie erfüllt, also nicht einmal eine einzelne welches Datenelement gefunden werden kann.
3 Richtige Schreibweise: Da es nicht verwendet wird, verwenden Sie die innere Abfrage, um die Zeilennummer als Ergebnismenge abzufragen, und verwenden Sie die innere Ergebnismenge zum Vergleich in die äußere Schicht.
select rownum,id,name from ( select rownum rn, u.* from test u where rownum<5) un where un.rn>2
4 Wenn das Paging durchgeführt wird, zum Beispiel drei Zeilen pro Seite müssen Sie abfragen. Die zweite Seite entspricht der Überprüfung von 4, 5, 6 Elementen. Startzeile 4 = (Seitenzahl - 1) * Länge jeder Seite + 1, Endzeile 6 = Seitenzahl * Länge jeder Seite Seite
select rownum,id,name from ( select rownum rn , t.* from test t where rownum <=6) n where n.rn>=4
5 Ebenso kann die Abfrage in 4 auf die meisten geändert werden Gemeinsame dreistufige Struktur
select rownum,id,name from ( select rownum rn, n.* from ( select * from test --最内层循环该怎么写怎么写 ) n where rownum <=6 --小于限制写在第二层 ) where rn>=4
Der obige Inhalt ist das Grundprinzip der Oracle-Paging-Abfrage. Ich hoffe, er kann jedem helfen.
Verwandte Empfehlungen:
Oracle-Paging-Funktionsbeispiel implementiert in PHP
php+oracle-Paging-Klasse_PHP-Tutorial
Oracle Paging-Abfrage-SQL-Prinzipien und -Anweisungen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Grundprinzipien der Oracle-Paging-Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!