00:00
好,接下来呢,咱们再进一次阶,进阶八,我们要介绍的属于叫做分页查询,分页查询在我们日后使用中还是非常广泛的,这是一个重点,但是相对比较简单,比较简单啊,那么首先咱们来去说一下什么时候会用上扉页查询啊啊,我们看一下引入或者说叫应用场景啊,好随便举一个例子,比如说我们打开一个外部项目,那么这个是它的页面,那么页面的数据啊,有可能是比方说商品列表页,那么平时咱们再去登录不是登录啊,我们再去淘宝,淘宝网呀,或者说一些这个购物的网站呀,买东西的时候,是不是他会把咱们的这个商品的话都显示出来呀,但是一页是不是有可能显示不全呀,啊你看哈,它就是这些是商品名,然后可能会有一些对应的信息,对吧?啊。
01:00
然后一页显示不全,你会发现它这个下方是不是都会对应的有什么页数是吧,或者说上一页下一页或者这个地方有一个指定到第十页呀,或者第几页对不对?好,我首先问一下大家,你说它为什么这样去做来,它怎么不全部显示出来呢?虽虽然显示不全嘛,就是显示不下啊,你要是都显示出来,是不是也有点太臃肿了,是不是啊,所以说当我们数据特别多的时候,我们希望分页显示,然后分页显示的话呢,它可不是说将我们假如说你有一一万十万条吧,有10万条商品呢,呃,都是你想要搜索的这个信息,它不是说从服务器端立马去下载这10万条啊,然后呢,再分页显示,它不是这个样子的,你这样的话呢,是不是有点效率太低了,我这样说能理解吧,比方说你要买男装,男装满足你条件的可能有10万个,它不是说你搜一个男装。
02:00
他10万套数据都从服务器是不是获取了呀,然后因为显示不全,所以他没他不是这样的,因为如果这样的话呢,他假如说你就看了第一页就没心情再看了,是吧,后面的其实你也你也没有点,那是不是就浪费了,对吧,他肯定不是这么着的,那他是怎么着的呢?他实际上是对了,你比方你现在显示的这不是第一页吗?所以说它会向服务器提交一个SQ请求,这个SQ请求呢,只是来显示你第一页这个,呃,需要显示的这个上写列表啊,第一页假如说每一页它显示十条,也就是只显示了是不是前十条啊啊,所以它递交的这个搜Q语句呢,就是代表说我只查询是不是前十条满足我要求的呀,它是这样的啊,也就是他是分页来去递交我们的请求的啊,可以这样去理解,那当我们显示下一页的话,其实就想告诉他,我是想显示第11条到第20条,那你再点下一页,那就是21到。
03:00
30条,所以那你想想啊,那我们是不是就必须要学会怎么着去编写这种搜Q请求啊啊,也就是分页显示的这种搜狗请求,我们必须要会,哎,所以说这个应用场景还是非常广泛的啊好,那我写到这儿了,应用场景就是说当我们这个我们要显示的数据,首先是不是一页显示不全呀,一页显示不全啊,那么这个时候呢,我们就需要去分页提交我们的是不思后请求呀,哎,可以这样去理解哈,好,那么接下来我们再说如何来实现它的语法,怎么去写这个语法呢?就是在我们前面讲过的基础查询的基础之上,那select后面加上查询列表,From后面加表明啊,加表明,当然也有可能你的需求是不是用上了连接查询啊,有有没有可能有呀,要是有可要是用上了的话,那就继续是不是加一些这。
04:00
和照啊,呃,那我就都给你写上哈,那也就是你这个地方应该是draw ta draw ta是不是就是连接类型啊,你是in呢还是left还是right对吧?哎,然后再去join引我们的表二有没有可能对吧?二后面再去加连接条件,那么我们是不是也有可能加where谁呢?筛选条件有没有可能加group by,有可能吧啊group by分组,分组字段也有可能加having having是不是叫做分组后筛选好order by有没有可能,有没有可能,是不是也有可能啊,Order by加排序的字段或者说其他的表达式哈,好,那么当然这一大堆是根据需求来的,就是不一定有,是不是这个意思啊,不一定有,但是如果有的话,你正常去写是没毛病的,我这个代表可选,能听懂吧,可选哈,那么最后的最后,我们再使用分页的这。
05:00
上的一个关键词limit limit后面呢,我们要追加两个值,第一个值呢,代表的是你的起始的巧木索引,起始的条目索引,比方说我们起一个名叫offset啊起始索引,那后面的代表的是你要显示的条目数size size size的意思就是条目数能听懂吧?好,我在这给你备注啊好,Set呢,我们代表是你要显示的显示的起始要显示呃条目的要显示条目的索引啊,起始索引啊起始索引,而且呢,要注意了,我们的这个起始索引从几开始,前面咱们说过MYS库里边,嗯,SSSPSSPR是不是它都是从一开始的呀,但是这个地方从零开始,哎,开始哈。
06:00
啊,他是这样的,是不是很矫情啊,他我怀疑他就不是不是一个程序员写的对不对啊好哈,Size代表的是你打算要显示的,要显示的条目个数,条目个数也就是一共几条行吧,那咱们就试一下了,我们做第一个案例,案例一,假如说我要去呃查询前五条可以吧,前五条员工信息员工信息好哎,这个怎么去写好,那么这个的话呢,就是select的,你先把是不是最基础的查询给写上啊,Select信号from employ,因为比较简单,我就写一行了可以吧?啊那么在这呢,也没有什么where啊等等这些哈,哎,我就直接limit了,对不对,根据我刚才介绍的前五。
07:00
条是不是就是第一条到第五条呀,那第一条的70索引是多少?它的索引是多少?零一共显示几条?五条是不是这么写呀,哪不对,你看线到我们大直线是不是五条哪就不对了呢?这它就是条目个数,又不是结束索引,对吧?你这个是不是就是说第一条的索引啊,我们第一条的索引是几啊,01234我管它剩下的,所以呢,不用管,你就管第一条是不是零,那你就写这吧,一共五条,写个五有什么毛病对不对?好再往下,那当然呢,如果说我们发现我的这个oppositeet的值是从第一条开。
08:00
指的往往可以省略,可以省略,那意思是说他也支持我这么去写,直接写个五好,这样是不是就更加的明显呀?啊,执行效果一样不一样,一样能明白吧,所以说刚才咱们说的这个厘米的子句里边,其中offset这个东西是不是可选呀?哎,这样去加能看懂我这种代码吧?啊好了哈,这是前五条了,那么接下来呢,我们再来去做一个,我想去查询好第11条,对了,第11条到第25条,这个绝对需要放两个值是吧,先看一共几条,一共几条。
09:00
怎么还有14的呢?25减11是不是再加一啊,第一条到第十条是不是一共是十条啊,十怎么算出来的,是不是十减一加一,哎呦,我天好,那这个要显示的这个起始的这个索引,第11条是不是索引就是多少十没问题吧,哎,这样去写哈,一共是十五行对不对啊来看一下是不是第11条啊来第11条它是这样的一个意思啊,因为第一条是100,是不是第一条是100,它不是101对吧?啊,所以我这样说没毛病吧,能跟上吧?啊逻辑思维啊好来看一下,接下来呢,我们看一下第三个案例,那么假如说我做一个这个哈,有奖金的。
10:00
员工的员工的哈,这个信有奖金的员工信息,然后并且工资较高的前十名显示出来,哎,是不是故意加筛选加排序了,说一下吧,Select型号commissionmi is not no and什么B,因为你这是教训你是不是工资较高的嘛,前面在对吧。
11:00
啊,这个比较长了,咱们可以跟他格式一下了哈,对吧?嗯,是不是我们现在去执行啊,看一下对不对,是不是十条,哎,是不是工资较高的在前面,诶我自己又给他弄了一下是不是,哎,是这样的哈,没问题吧,哎,这是关于这个哈,关于这个行吧,那根据刚才几个案例,咱们已经明确了说分页查询基本的一个使用场景以及案例啊,就这些了,我们最后总结一下哈,总结一下它的这个特点,好,第一个特点我们来说一下,我们第一个特点,我们发现这个limit子句是不是都是在我们查询语句的哪啊最后啊limit limit语句啊,那么放在我们查询语句的最后,它不光是语法上是在最后,在执行顺序上也是最后啊,那假如说就。
12:00
是这个语句,我们说一下它的执行顺序哈,来注意看,那么首先from表先走它,然后是不是in the drawing on呀,哎,这是第二步啊,当然你要是in join on再分开的话,那就是先join,是不是变成一个抵抗成绩的表格呀,啊,然后再去on,哎,有条件了再去筛选,再去group by,再去还记住每一步它都会在它的内部是不是生成一个虚拟的结果集呀,好,然后走完这一步,记住了去走select,走完select再走谁呀,Order by order by走完了再去走神,Limit limit,从执行上以及从语法上都是在最后,都是在最后,能看明白吧?啊,都是在最后哈,好,这是第一点,第二点,因为我们说到了说呀,后面的话,咱们经成可能从应用程序那一方递交我们分页查询的这种思。
13:00
请求向数据库服务器是不是发送申请啊,那这条语句的话怎么去写,肯定一般的我们不这样固定下来对不对,他肯定是用变量表示的哈,所以说咱们需要学会一个公式,什么公式呢?你比如说我举个例子哈。举报一下哈,要显示的这个页数,假如说我们要显示的页数是配置,能看到吧,嗯,然后每页的条木数呢,每页条木数比方说就是size,好,那么这个是固定的,那么我们要写个词汇语句的话,呃,我们应该怎么去写啊,比方说哎,那我应该是select啊,哎,我这个select前面其实加不加都行啊,我就这样写吧,查询列表from是不是一个表呀?哎,我这就直接写limit了,可以吧,哎,就是我的意思是说人家确定了一下,说要写示的约数是个配置啊,那这个调拨数是个size,诶这个地方怎么写呀,咱们可以跟他整个公式S,这个是固定的吧,问题是前面直接写配置肯定不行。
14:19
也就是你看刚才不说过了吗?你实际的这个应用中,你的这个页面里边是不是对应的有一个跳转到第几页呀,你跳转到第十页,那你的词口语句怎么写,想不上来了,想不上来了,你这样抄链接一下,假如说咱们固定一下哈,呃,咱们这个S,假如说就是等于十,大家注意听哈,咱们是不是自己找一下规律啊,当不知道的时候想办法找规律,一般的三条就能成为一条规律啊,就成为一个规律咱们找一下,比方说咱们设定一个场景,三的值是十,那配置等于一的时候,我这个地方应该写谁啊?配置要是等于一是不是第一呀,我道应该写零,配置等于二是不是第二页呀,第二页的话,起始的索引应该写几,应该写几十没问题吧?
15:19
啊啊好,那配置等于三的时候,我这个地方写减20好了,规律出没出来,这个是不是跟size有关呀,正好是配置减一乘以size,所以这个公式的话要求大家掌握,配置减一乘以size能看明白吧?哎,这样去写的啊,所以以后大家再去递交分页查询的SQ请求的时候,你就确定一下是第几页,每页写了多少条,知道这两个变量,我这就好去写了,对吧,就好去写了哈,行,我们分页查询说到这里了。
我来说两句