在編寫Web應(yīng)用程序等系統(tǒng)時(shí),會(huì)涉及到與數(shù)據(jù)庫(kù)的交互,如果數(shù)據(jù)庫(kù)中數(shù)據(jù)量很大的話,一次檢索所有的記錄,會(huì)占用系統(tǒng)很大的資源,因此常常采用分頁(yè)語(yǔ)句:需要多少數(shù)據(jù)就只從數(shù)據(jù)庫(kù)中取多少條記錄。以下是Sql Server,Oracle和MySQL的分頁(yè)語(yǔ)句(從數(shù)據(jù)庫(kù)表中的第M條數(shù)據(jù)開始取N條記錄):
SQL Server
從數(shù)據(jù)庫(kù)表中的第M條記錄開始取N條記錄,利用Top關(guān)鍵字(如果Select語(yǔ)句中既有top,又有order by,則是從排序好的結(jié)果集中選擇):
SELECT *?? FROM
(SELECT Top N * FROM
(SELECT Top (M + N - 1) * FROM 表名稱 Order by 主鍵 desc)
t1)
t2?? Order by 主鍵 asc??
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語(yǔ)句如下:
SELECT *?? FROM
(SELECT TOP 20 *?? FROM
(SELECT TOP 29 * FROM Sys_option order by sys_id desc)
t1)
t2?? Order by sys_id asc
MySQL數(shù)據(jù)庫(kù)
My sql數(shù)據(jù)庫(kù)最簡(jiǎn)單,是利用mySQL的LIMIT函數(shù),LIMIT [offset,] rows從數(shù)據(jù)庫(kù)表中M條記錄開始檢索N條記錄的語(yǔ)句為:
SELECT [列名列表] FROM 表名稱 LIMIT M,N?
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語(yǔ)句如下:
select * from sys_option limit 10,20
Oralce數(shù)據(jù)庫(kù)
從數(shù)據(jù)庫(kù)表中第M條記錄開始檢索N條記錄

例如從表employees(主鍵為employee_id)中從11條記錄還是檢索20條記錄,語(yǔ)句如下:
