MySQL/Oracleなどのデータベースのページング処理
2009/09/08 18:29Update
本文は、MySQLやMssql、Oracleなどのデータベースのページング処理のやり方について解説します。
ページング処理について
データベースクエリで、大量のデータから必要なだけを抽出する手法は「ページング」処理といいます。
例えば、Googleなどの検索サイトでは、あるキーワードを入力し、検索をかけると、「約 1345,000 件中 1 - 10 件目 (0.37 秒) 」のような文字が表示され、1ページ目の10件のデータだけが表示されます。
1345,000件のデータもあるのに、本当に見せてくれるのはわずか10件です。
このように、コンピュータのメモリなどの制限で、一回の検索ですべてのデータを取り出すのはまず無理で、必要もありません。
1ページ目の表示は、1~10件のデータだけを取得し、
2ページ目の表示は、11~20件のデータだけを取得すればよいわけです。
これはいわゆる「ページング」処理です。
MySQLのページング処理
MySQLデータベースでは、limitキーワードでページング処理を行います。
select * from some_table limit 5,10; #6~15行のデータを返します
select * from some_table limit 0,5; #先頭5行のデータを返します
select * from some_table limit 5; #先頭5行のデータを返します
select * from some_table limit 0,5; #先頭5行のデータを返します
select * from some_table limit 5; #先頭5行のデータを返します
Mssql 2000のページング処理
Mssql 2000データベースでは、topキーワードでページング処理を行います。
※2005以降のバージョンでは、rownumもサポートされています。
select top 10 * from some_table
where id not in (select id from some_table where id > 5 ); //6~15行のデータを返します
※10:10レコード数where id not in (select id from some_table where id > 5 ); //6~15行のデータを返します
※5:5行目から
Oracleのページング処理
①rownumキーワードで
SELECT * FROM(
SELECT a.*, ROWNUM num
FROM
(SELECT * FROM some_table) a
WHERE
ROWNUM <= 15)
WHERE num >= 5;
--5~15行のデータを返します
SELECT a.*, ROWNUM num
FROM
(SELECT * FROM some_table) a
WHERE
ROWNUM <= 15)
WHERE num >= 5;
--5~15行のデータを返します
②row_number()分析関数で
SELECT a.* FROM(
SELECT t.*,row_number() over(ORDER BY o_id) AS num
FROM some_table t
) a
WHERE num BETWEEN 5 AND 15;
--5~15行のデータを返します
SELECT t.*,row_number() over(ORDER BY o_id) AS num
FROM some_table t
) a
WHERE num BETWEEN 5 AND 15;
--5~15行のデータを返します
Sponsored Link
- Relative Articles
- SQL入門その15 - テーブルの列名の変更 - (2009/03/16 11:16)
- OralceやMySQLなどのデータベースの索引(インデックス)を削除する例 - (2010/08/02 17:45)
- Oracle Databsae 10g - Windows環境でのOracleのインストール - (2010/09/13 17:53)
- データベースチューニング - (2008/07/11 15:54)
- MySQLチューニングを行うためのログ解析ツール - (2008/10/10 00:27)
- MySQLクイック・リファレンス - (2008/12/24 20:41)
- MySQL RSSで最新ニュース・情報 - (2009/02/26 14:09)
- MySQL初心者入門講座「mysqlweb.net」 - (2009/02/26 14:14)
- MySQL4.1 リファレンス・マニュアル「公式日本語版」 - (2009/02/26 14:27)
- MySQL5.1 リファレンス・マニュアル「公式日本語版」 - (2009/02/26 14:29)