tnblog
首页
视频
资源
登录

思宇上课笔记—SQL数据库分页查询的方式

3342人阅读 2019/4/8 17:13 总访问:14550 评论:0 收藏:0 手机
分类: SQLserver



           jQuery课堂实例


        分页在实际开发中经常被用到,今天就来介绍下SQL数据库分页的几种常见方式。


           下面的例子都以每分5条数据为一页为例:


            1.top分页法:


            

            


            

            

            


            2.between and (id必须连续


            

            

            

             

            

            因为我们这里是用id进行排列,然后筛选,如果我们删除一条数据,结果会怎么样呢?

            

            

            

            我们删除一条id为5的数据,再查询它所在的第一页发现第一页的数据变成只有4条了,我们再查询id 1~10的数据看看


            

            很明显看出数据只有9条,我们使用between and 要求id在一定范围,则id必须为连续的,如果不连续,就会少数据,如果我们细心一点也会发现,虽然id不连续了,但是行号依旧是连续的,也就是说行号不会随着我们删除数据,而导致行号不连续,如果我们有办法可以得到行号,问题也就变得简单了。


            3.ROW_NUMBER 行号分页

             

             我们根据思路来一步步推,先去看看官方文档,语法就不演示了,看不懂,还是自己理解吧

              

               

                我们查询所有,用ROW_NUMBER()函数求行号,但是报错,告诉我们要over子句,我们就写上

                


                over子句里写的是排序方式,这里我们根据id进行升序得其行号最为合理,当然这里的id字段可以改,排序方式也可以改(默认升序) ,只不过在这里用id升序最好


                得到的行号我们取个别名rownumber

                

            

                

                行号已经求出来了,看看能不能直接根据行号来取


                

                     喔嚯,不得行,想简单了,报rownumber不存在的错,仔细想想我们是在对id进行排序后再得其行号改别名,我们怎么能在形成表的同时得到rownumber呢?表的数据都没有加载完,我们怎么对行号排序还只取前5个呢?想个办法,我们可以将行号显示出来后的组合表当成一个新表,再求这个新表中的rownumber字段,上图:

                

                额,还是报错,不过没有显示rownumber不存在了,我们思路是对的,只不过又出现新问题了,原来新表要取个别名

          

          这样一看,应该是没有问题了,在我们一步步推理下终于出来了,这样理解的更清楚了吧,如果忘了写法,还可以这样推出来


             

            

             


             


            4.offset分页(2012版本才开始支持)


            


            

            


            这个也支持id不连续查询,但是有版本要求,所以要使用这个方法的时候要注意数据库的版本


            5.内存分页:咳咳,只闻其名,不检其形,还没自己去研究,有兴趣可以自己去研究下哦!

            

            如果有错误,不明确的地方,欢迎大家指出来,如果还有补充,欢迎各位大神,先溜了

              

评价

思宇上课笔记—初识jQuery

JQuery(前端)什么是jQuery?jQuery就只是一个一个JavaScript函数库而已什么是js的库就是封装的一些js常用的的方法。eg:Dom...

思宇上课笔记—全(不)选反选功能的实现

jQuery课堂实例在平时生活中,全(不)选和反选的功能非常实用,今天我们用jQuery来简单实现它。1.首先我们来看下需求2.看一...

思宇上课笔记—jQuery插件的编写

jQuery课堂实例相信我们每个人在学习jQuery中,都或多或少的使用到了jQuery插件,jQuery插件使用起来确实非常的方便,快捷...

oracle数据库中没有scott用户

使用SYS用户登录conn sys/密码 as sysdba(默认密码123456)然后找到oracle安装目录下scott.sql的这个文件然后执行命令:@+...

没有为 SQL 缓存通知启用数据库

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql -S 数据库IP -U 登录名 -P 密码 -d 数据库名称 -t 表名 -et

ado.net访问数据库的基本用法

放回datatable//1:开打数据库的连接 using(SqlConnectionconn=newSqlConnection("server=.;uid=sa;pwd=123456;databa...

多线程、Lock锁、数据库实现队列

队列其元素以先进先出(Firstin,Firstout,FIFO)的方式来处理的集合。先放入队列中的元素会先读取。队列使用System.Collect...

遍历数据库中表的T4模板

简单的案例创建文本模板ctrl+s出奇迹<#@templatedebug="false"hostspecific="false"language=&quot...

日志是写数据库好还是文件好,以及日志策略

先来看看大佬的一句话:离开需求谈技术都是扯淡主要是看你的日志是为了只做一个存储归档,还是要把数据对统计与分析如果只...

数据库的varchar和nvarchar的区别

搞了一个上午,自己测试看懂的一点点小东西,现在记录下来....数据库的varchar和nvarchar的区别首先内存上:1--8000 1--400...

mysql数据库基础

1 数据库和表操作 2 数据操作 3 高级查询 4 mysql管理1 数据库和表操作 数据库 创建:create database 数据库名 [default ...

EF连接mysql连接mysql数据库操作中文数据乱码解决方法

修改数据库的连接字符器在连接字符器添加charset=gb2312。注意事项:(1)字符编码不支持UTF8。(2)必须使用规定编码。示例:&...

EF连接mysql数据库

注意事项准备工作(1)下载MySQL数据库软件6.6.6版本。 (2)下载MySQL数据库mysql-connector-net-6.6.6两者不一样都不能少。(...
做个有趣的人!
排名
74
文章
5
粉丝
3
评论
4
思宇上课笔记—全(不)选反选功能的实现
读着倒看猪 : 该说点啥呢。。。
思宇课后实例—全选和部分选中
师友 : 要坚持更新哦,思宇同学
思宇上课笔记—初识jQuery
剑轩 : [斜眼笑]有点意思
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术