Sql 数据库分页

 时间:2024-10-13 00:10:20

前台缓存分页,如果数据很多的话会变得很慢,而且不方便,所以就在这里把数据库的分页进行集合。

工具/原料

sqlserver2008

分页第一种

1、首先 建一张测试表create database Testgouse Testgocreate Table UserInfo( userid int identity(1,1) primary key, username nvarchar(10) not null)

Sql 数据库分页

2、接着往数据库里添加测试数据insert into UserInfo values ('a11')insert into UserInfo values ('a12')insert into UserInfo values ('a13')insert into UserInfo values ('a14')insert into UserInfo values ('a15')insert into UserInfo values ('a16')insert into UserInfo values ('a17')select * from UserInfo

Sql 数据库分页

3、--查询第三页的数据--数据库模拟前台传过来的参数declare @pagesize int--定义显示条数declare @currentPage int--定义当前页set @pagesize = 3set @currentPage = 3--分页查询语句select top (@pagesize) * from Userinfowhere useridnot in(select top(@pagesize*(@currentPage-1))useridfrom UserInfo)

Sql 数据库分页Sql 数据库分页

4、--第一页:因为不需要对数据过滤,--所以只取PagSize数量的记录--第二页:步骤:--1.取前两页的数据 selct top @pagesize *@currentPage--2.过滤掉第一页的数据@pagesize*(@currentPage-1)

分页第二种

1、--第二种方法:如果ID是连续,完全不用top--直接用id就可以--建表格 数据从UserInfo拿过来create table #tempUserInfo( id int identity(1,1) primary key, userid int not null, username nvarchar(10) not null)--插入数据insert into #tempUserInfoselect * from UserInfo

Sql 数据库分页

2、分页--查询第二页的数据--数据库模拟前台传过来的参数declare @pagesize int--定义显示条数declare @currentPage int--定义当前页set @pagesize = 3set @currentPage = 2--查询语句select * from #tempUserInfowhere id between(@currentPage -1)*@pagesize +1and @pagesize * @currentPage

Sql 数据库分页

分页第三种

1、--第三种--rownumber()函数是sql server2005才有declare @pagesize intdeclare @currentPage intset @pagesize = 3set @currentPage = 3--查询语句select * from (select ROW_NUMBER() over (order by userid) as HangHao,*from UserInfo) pageduserinfowhere HangHao between(@currentPage -1)*@pagesize +1and @pagesize * @currentPage

Sql 数据库分页

2、--效率问题:第一张绝对比第三种低。--理论上第二种效率最高,但不推荐用,--要实现的话,一般是用存储过程个人推荐第三种

  • 望远镜观鸟小知识
  • jquery怎么显示div内的内容
  • 如何处理好青春叛逆期与父母的关系
  • 园艺知识手抄报
  • 荒野行动无声音怎么解决
  • 热门搜索
    剁椒鱼头的家常做法 鸡腿做法 芒果慕斯蛋糕的做法 烤鱼的做法 炖鸭子的做法大全 电信卡怎么查话费 电脑开机密码怎么设置 生日快乐用英语怎么说 自己生日怎么发朋友圈 凉拌黄瓜的做法