数据库分页查询

最近在写自动化测试方面的事,好久没有使用数据库,一时手生,居然忘了分页查村语句的写法,赶忙跑去找了找,本来是很小的一个知识点,就因为不常用,导致手生,所以说很多看似方便的工具,或许确实可以方便很多开发中的问题,但是他们也会让我们逐步的丧失能力,记得前一阵子,看到说美国是一群有想法的人领导着一群没有想法的人,很是受教。废话不多说,总计一下,一些常见的数据库的分页查询的方法。

mySQL:
mySQL数据库内部提供了一个LIMIT函数,一般只需要直接放在查询语句后面即可。

LIMIT可以用来限制查询(SELECT)语句返回过来的数据,他一般有一个或两个参数,如果给出两个参数,第一个参数指定返回的第一行在所有数据中的位置,从0开始(不是1),第二个参数是指定返回最多的行数。

例如:

SELECT * FROM table WHERE name=cter LIMIT 5; 返回前五行数据

SELECT * FROM table WHERE name=cter LIMIT 0 ,5; 返回前5行数据

SELECT * FROM table WHERE name=cter LIMIT 5,10; 返回第5行到第十行的数据

ORCALE:

ORCALE数据库实现分页查询可以使用row_number()函数或者使用rownum虚列两种方法

第一种:

SELECT * FROM(SELECT t.* row_number() over(order by t1.id) rowno from TABLE) WHERE rowno between 10 and 20;

第二种:

SELECT * FROM (SELECT t.*, rownum as rowno FROM TABLE1) WHERE rowno BETWEEN 10AND 20;

这两种方法比较,是第二种更好一些,因为不用order by语句,可以提高查询速度。

发布了32 篇原创文章 · 获赞 6 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章