Rumah >pangkalan data >Oracle >Bagaimana untuk melaksanakan paging dalam oracle

Bagaimana untuk melaksanakan paging dalam oracle

DDD
DDDasal
2023-09-18 13:16:573482semak imbas

Langkah untuk melaksanakan paging: 1. Gunakan ROWNUM untuk pertanyaan paging; 2. Tetapkan parameter paging sebelum melaksanakan pertanyaan 3. Gunakan fungsi "COUNT(*)" untuk mendapatkan jumlah bilangan baris, dan gunakan "CEIL" fungsi untuk mengambil ke atas Kira jumlah bilangan halaman; 4. Gunakan klausa "WHERE" dalam pertanyaan luaran untuk menapis julat nombor baris tertentu untuk melaksanakan pertanyaan halaman.

Bagaimana untuk melaksanakan paging dalam oracle

Dalam pangkalan data Oracle, anda boleh menggunakan ROWNUM dan pertanyaan paging untuk melaksanakan fungsi paging. ROWNUM ialah lajur pseudo yang disediakan oleh Oracle, yang digunakan untuk menetapkan nombor baris unik pada setiap baris hasil pertanyaan. Menggunakan gabungan ROWNUM dan pertanyaan halaman, kami boleh mendapatkan data khusus berdasarkan bilangan halaman yang ditentukan dan bilangan baris yang dipaparkan pada setiap halaman.

Berikut ialah kaedah biasa untuk melaksanakan paging dalam Oracle:

1 Gunakan ROWNUM untuk pertanyaan paging:

Pertama, kita perlu menulis pernyataan pertanyaan asas untuk mendapatkan semua data, dan kemudian berdasarkan Perform ini. operasi paging. Sebagai contoh, kami mempunyai jadual bernama "pekerja" yang mengandungi maklumat pekerja dan kami ingin melakukan pertanyaan paging berdasarkan ID pekerja.

   SELECT *
   FROM (
       SELECT e.*, ROWNUM AS rn
       FROM employees e
       ORDER BY e.employee_id
   )
   WHERE rn BETWEEN :start_row AND :end_row;

Dalam pernyataan pertanyaan di atas, kami menggunakan ROWNUM sebagai lajur pseudo dengan alias "rn", yang mewakili nombor baris setiap baris. Kemudian, kami menjadikan pertanyaan ini sebagai subquery dan menggunakan klausa "WHERE" dalam pertanyaan luar untuk menapis julat nombor baris tertentu untuk melaksanakan pertanyaan paging.

2. Tetapkan parameter paging:

Dalam pernyataan pertanyaan di atas, kami menggunakan dua parameter ":start_row" dan ":end_row" untuk mewakili nombor baris permulaan dan nombor baris akhir setiap halaman. Parameter ini perlu ditetapkan sebelum melaksanakan pertanyaan. Sebagai contoh, jika kita ingin mendapatkan halaman pertama data dan memaparkan 10 baris setiap halaman, kita boleh menetapkan ":start_row" kepada 1 dan ":end_row" kepada 10.

3 Kira jumlah halaman:

Untuk mencapai pengalaman halaman yang lebih baik, biasanya perlu mengira jumlah halaman. Kami boleh menggunakan pertanyaan berikut untuk mendapatkan jumlah bilangan baris dan halaman:

   SELECT COUNT(*) AS total_rows, CEIL(COUNT(*) / :page_size) AS total_pages
   FROM employees;

Dalam pertanyaan di atas, kami menggunakan fungsi "COUNT(*)" untuk mendapatkan jumlah bilangan baris dan fungsi "CEIL" untuk dibundarkan ke atas. Parameter ":page_size" menunjukkan bilangan baris yang dipaparkan pada setiap halaman.

4. Contoh pertanyaan paging lengkap:

Berikut ialah contoh lengkap untuk menunjukkan cara melaksanakan pertanyaan paging dalam Oracle:

   -- 设置分页参数
   :start_row := (:page_number - 1) * :page_size + 1;
   :end_row := :page_number * :page_size;
   -- 执行分页查询
   SELECT *
   FROM (
       SELECT e.*, ROWNUM AS rn
       FROM employees e
       ORDER BY e.employee_id
   )
   WHERE rn BETWEEN :start_row AND :end_row;
   -- 计算总页数
   SELECT COUNT(*) AS total_rows, CEIL(COUNT(*) / :page_size) AS total_pages
   FROM employees;

Dalam contoh di atas, kami menggunakan parameter ":page_number" untuk mewakili data kepada diperolehi Bilangan muka surat. Mula-mula, kami mengira nilai parameter ":start_row" dan ":end_row" berdasarkan parameter ":page_number" dan ":page_size", dan kemudian laksanakan pertanyaan paging. Akhir sekali, kami menggunakan pertanyaan lain untuk mengira jumlah bilangan baris dan jumlah halaman.

Ringkasan:

Dengan menggunakan ROWNUM dan pertanyaan paging, kami boleh melaksanakan fungsi paging dalam pangkalan data Oracle. Pertama, kita perlu menulis pernyataan pertanyaan asas dan menggunakan ROWNUM sebagai lajur pseudo untuk menetapkan nombor baris unik pada setiap baris. Kemudian, kami menjadikan pertanyaan ini sebagai subquery dan menggunakan klausa "WHERE" dalam pertanyaan luar untuk menapis julat nombor baris tertentu untuk melaksanakan pertanyaan paging. Selain itu, kami juga boleh menetapkan parameter paging dan mengira jumlah bilangan halaman untuk memberikan pengalaman paging yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan paging dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn