00:00
那在讲完这个order by之后啊,咱们接着来看这个第二个问题,叫做分页这样一个操作,哎,我们说了这两个呢,其实没有说必然的关系啊,就是两个不同的需求而已,好,那关于分页的话呢,是什么意思呀?哎,大家看我们还是从这样一个需求出发,咱们刚才呢,解决的是一个排序的问题,相当于呢,就是咱们从这个数据库当中啊,咱们查询这个一个表的时候呢,把这个数据呢都呈现给我们了,默认的话呢,咱说了是按照你添加的顺序来显示的,咱们呢,很多时候呢,都是希望呢,他有一定的顺序,对吧?嗯,这个因为我们实际情况的话呢,大家没有那么多时间一个个去翻,所以我们希望呢,他按照某一个顺序去排,那我们可能关注的就是头部这样的一些信息了,那本身的话呢,像现在这些电商啊等等一些包,包括这个百度等等是吧,百度是不是还有这个专门竞价排名。啊,为什么百度呢,现在这个估值比较低呢,呃,因为这个行业里边资本是吧,就把百度呢看成是一家广告公司,而不是看成一家互联网公司啊现在呢,这不也在讨论说百度呢有望这个股价呢往上升,为什么呀,因为像这个无人驾驶啊等等这个AI呢。
01:06
百度在这方面呢,投入比较多啊,一旦呢这块呢,它做成了之后呢,这个资本呢,又重回重新呢,会把它定义成是一家互联网公司,那么互联网公司的话呢,它这个估值,这个估值的这叫什么市盈率啊,会更高一些,那如果当成一家广告公司的话呢,属于比较传统的是吧,那像小米的话呢,就是老是这个雷达的是吧,诶老是说他自己呢,是一家互联网公司啊,就是为什么这样讲呢?因为资本的话呢,会给他估值呢,会往高里边估一些啊是有这样的一个特征,行,那你像百度啊,像这个淘宝啊,包括这个京东啊等等是吧,他们这个所谓的这个综合排序,其实也不是我们所讲的默认的一种排序方式了,它里边呢,会涉及到商品的,是不是一些竞价呀,那你得掏这个广告位才行,对吧?OK,行,那我们呢,就是解决完这个排序之后啊,我们再考虑下个问题,大家想我们现在查询的是这个手机,你查询到这个数据的话呢,那毫无疑问啊,成百上千条啊,这这个成千上万条一定是没有问题的,那这里边呢,问题就在于说,那如果说我们每次去查一下。
02:07
数据库给我们返回几千条乃至说几万条数据的话呢,一次性反应过来,其实我们是不是也看不了那么多呀,所以通常的话呢,咱们都会看到这里边是不是有这个分页这样的一个需求,对吧。诶有分页这样一个需求,呃,这是一方面,这个需求的话呢,其实大家你在这个移动端来看的话呢,诶想必呢,这个体验会更加的明显一些,什么意思啊,比如说大家用这个手机啊,现在你在这个外面希望呢,找一个饭店呢,这个吃饭啊,你看附近的说哪个饭馆这个评价比较高啊,这块呢就诶发送了一个这个请求是吧,然后看一看在这个美团上,然后呢,我们知道这个吃饭的话呢,他会举个例子啊,把这个周边这块呢都给你返回过来,假设呢,你现在处在这个小吃一条街上,这个饭店呢,非常的多,那就是说呢,他把方圆,比如说两公里这个范围内的所有的饭店都抛给你了,这个数据的话呢,怎么也得有啊,比如上百条了。那这个时候的话呢,那你想一下,如果给你返回的这个数据啊,上百条的全返回到这儿了,你想想大家吃个饭是不是你也不可能把这上百条的这个饭店呢,都看一遍之后再选,对吧?所以说呢,给我们返回这个数据的话呢,没有必要一次性全部都返回。
03:15
没有必要呢,全部都返回,那这里边儿的好处是什么呢?首先呢,比如说给你返回一百一百条数据,跟返回十条数据相比,显然返回十条数据是不是速度会更快一些。在网络一定,网速一定的情况下,返回试调是不是速度肯定会快一些,对吧,那同时的话呢,返回这个市调数据相降100条数据,是不是也节省你网络的资源啊。那说白了就是你这个流量,你这个返回十条呢,就用不了那么多,100条的流量太多了,那另外一点呢,返回的数据越多,那意味着你跟这个,呃,跟我们这个远程这个数据库呢,保持连接的时间就越长,是不是你这个相应的对电量的耗费也会更多一些。那这么多弊端,同时呢,面对另外一点就是根本你也看不了这么多是吧,那如果你需要的话呢,是不是你再往上一滑,接着去请求一次网络,然后把这个下一页的十条数据再返回给你就可以了,是吧?就好比咱们这样一样,但是你看咱们在这个网这个PC段的话呢,我现在是连着网呢,咱们看到是第一页数据,如果我再点一下这个二的话呢,你会发现你看这有个进度条,实际上呢,这时候呢,又进行了一次网络的请求,才把我们第二页的数据呢响应给我们了。
04:21
就是相当于这时候呢,是需要联网的,那如果说大家你把这个网断了的话呢,我们再点一下这个第三这个时候呢,其实它就联网就失败了。啊,联网就失败了,OK,这是我们说的这个意思,那有同学说呢,如果说出现了这种也在不同的网站当中,我再点下一页的时候呢,出现这个数据,我关了网还出来了,这个呢,就是可以理解成它有一定的缓存了。你再往后去点几页,它肯定就出不来了,对吧,这是不同的网站,网站呢,它的处理的这个方式不一样,OK行这呢就是我们想强调的点,就是分页呢,还是有这个必要性的,数据量太多太多了,我们查看起来不方便,我们就希望呢,以一页一页的方式呢去查看。
05:00
那百度呢,大家不都是这样嘛,是吧,第一页数据呢没有了,你是不是再访问下一页,OK,那如果呢,前面的话呢,已经有你想找的这个结果了,你也不会再去访问后边的页了,OK,行,那这呢,就是我们谈到的这个叫分页,这个操作就第二个叫做分页。行分页的话呢,咱们直接呢,就相对于来说一下,在my circle当中是如何来处理这个分页显示的,对吧?好,我们还是拿到咱们这个表select,比如说employee ID,然后再来一个last name呢,From employees是吧?好,那么我们就直接来讲这个分页了。这个分页呢,它用的关键字叫做limit。那叫分页也好,或者我们叫这个就是显示某一段数据也好,就这个意思,那我在这写一下,使用这个咱们叫2.1啊,My circle。使用limit来实现这个数据的分页显示。这样好,那么我们如果说呢,只选择这个操作,我现在一点击是不是就咱们把所有的员工的信息都给呈现出来了,一共107条,对吧?好,那现在呢,我们要这个分页了,分页这块的话呢,首先提到这个页的概念,那我们得是不是有一个规范呀,那比如说我们这个,那相当于是一个。
06:16
嗯,咱们自己提了一个需求,需求什么呀,就是每页显示,比如说20条记录。啊,那现在呢,我们,呃,此时显示第一页吧。那第一页那相当于就是前20条记录了,对吧?好,那么前20条记录怎么去写呢?这个limit的后边呢,需要加东西的,那这块怎么加呀?诶那么一开始我就直接给大家讲了,首先呢,我们写个零,这个零呢,其实你可以理解成了这叫偏移量了,偏移量是零,那就从头开始,从头开始显示多少条啊,是不是显示20条记录啊。诶,偏移量是零,大家首次听说过这个词,什么叫偏移量呢?就比如说咱们默认的话呢,这个指针就是指在第一条记录上的偏移量,如果是零,那表示呢,就还是在这儿,偏移量要是一呢?那就是往下再偏移一个位置,那偏移量要是二呢,就往下偏移两个位置了,这叫做偏移量,好,那么偏移量是零,那是不是就意味着就是从第一条记录开始,20呢,就是咱们要显示的这个条目数。
07:17
啊,显示的这个条目数,我是不是一共是有20个呀。OK,那所以呢,你看我们这边这是从这个100开始的,要到20呢,应该是不是到到119,这是吧,行好此时呢,你看我们选中,哎,我这块呢,走一下,你看一共20,就要记住从100开始,是不是一直到这个119。没问题,那此时呢,咱们显示的那是不是就是第一页的这个数据啊。第一页。能理解吧,好,那这个需求呢,完了以后咱们再接着提这个需求,那我这叫需求一,好,我再来提一下这个它叫需求二,还是呢,每页减20条,20条这个记录,我想显示的是第二页的这个数据。我想显示第二页的数据,第二页大家你想我们如果还是这样的去执行。
08:05
还是这样去执行,是不是就是我们全部的数据了,那现在呢,你想显示第二页是不是就应该是从这个119后边开始啊。那就是从这个120开始对吧,那就意味着我们一上来呢,是不是先得有一个偏移量啊,先得有个偏移量是吧,这个偏移量写多少呢。是多少?偏移量是零指的是它偏移量是一呢,指的是它偏移量二呢指的是它,哎,正好这个二是不是就跟这个二是一样,那我们现在是从这个120开始,那偏移量是不是就是20啊。对吧,啊2020OK啊这呢,就是咱们说的这个第二页的数据来走一下。好,大家看这时候呢,是不是就从这个120开始啊。然后接着往下看20行数据,这呢是到139。OK,然后接着我们再去提这个需求,这个需求三,然后我们显示呢,第三页的数据,第三项数据这块是不是就140了,140诶这块是不是就开始写的叫40的呀。
09:02
来,走一下。你看140,哎,20条记录行,哎,是不是就这样子来处理就行,对吧?好这呢就是咱们说的这个分页呢,这里边我们第一页,第二页,第三页该怎么去处理的问题,那这个呢,我们要是依次往下走的话呢,大家看能不能写出来一个公式呢,这个需求就是每页显示我们叫配置size条记录吧。写这个公式的话呢,大家之后是不是直接调用这个公式就可以了,对吧,那么此时。显示D,咱们叫诶page number吧啊。来看我们这个公式应该是什么样子的。行,那首先呢,我们就用的是这个limit了,对吧,那首先的话呢,这块强调是这个叫偏移量了,嗯,那么咱们就以刚才讲的这个需求123为例,大家看能不能把它总结出来这个公式。你看这是我们说的第一页,这个是第二页,这个是第三页,那我要是第四页的话呢,能推出来是不是该写是60了呀,你看每次咱们一说增加一个页,增长的这个数是不是恰好就是我们后边这个数吧。
10:12
那第第一页的话呢,是零。第二页的话呢,反而是这个20,第三页的话呢,相当于是20的二倍。那是不是就出现了是我们想显示的叫page,是不是number页,这个页呢,跟咱们这个page size呢,你看这个关系是什么呀?我们想显示第一页的话呢,第一页一乘以20,那其实不是20,反而那是零,第二页的话呢,反而是20,其实相当于是不是叫配置number减个一。这样。括起来大家看这是不是就我们所谓的这叫偏移量啊。就要平移量,然后后边这个呢,就是你每页显示多少条,咱们每页显示是不是配置size这么多条,那我就把这个呢逗号一下,诶这是不是就这个公式啊。你往这里套一下,我们想显示第一页一减一零啊,这结果就是零,显示第二页二减一是一一乘以20,哎,这就20,第三页三减一是二二乘以20,哎,40。
11:08
然后这个还是20,哎,这不是没问题吗。这就是咱们说的这个公式。对吧,哎,这就我们说这个公式。好,那么有了这个公式以后呢,大家你就能够想象一下,比如说你用手机也好,哎,用咱们这个P端就就以它来说吧,因为咱们这块不正好有个例子嘛,如果你想显示你看啊我们D某页的数据了,这个D某页其实就是咱们刚才说的是不是叫page number对吧?当我们写好这个页主之我一点确定,相当于此时就发了一个请求,那最终呢,就发到我们这个数据库这块了,当然了,发给数据库之前呢,先发给我们这个后台的这个程序啊,这个程序呢,你看你发过来,比如说是四,它是不是就按照我们刚才说的那个公式,哎,四减一个一是不是就是三,然后他把这个SQL语句配好,然后呢,放到我们数据库服务器这块呢去执行。啊,就是就是这样一个道理,就是相当于你发给后台的话呢,我就知道你想显示的是第四页是吧,然后每页显示多少条记录呢,这个你可以看到是一个固定的,在咱们这个淘宝当中,你看这一页显示多少个,这是固定的啊,它有个固定值,你往这一套就出来第多少页了。
12:12
行,这个呢,就咱们说的这个分页的这个问题,好,那接着我们再来看下个点。这个limit的话呢,咱们现在用的比较纯粹就是在STEM的基础上呢,加了一个limit,那我们下边呢,就是考虑上order by之后,包括呢where之后,那他们放在一起该如何去声明啊,所以我们2.2呢,想说明的就是这个where。啊,Where和这个order by啊,还有我们这个叫limit,它的一个limit。他的一个声明顺序。声明顺序如下,注意我这块说的叫声明的顺序,没有说是按照这个顺序去执行的。咱们后边呢,在讲完这个select之后啊,咱们再统一的给大家去说好,那比如我们就还以这两个为例吧。
13:00
嗯,再补一个吧,比如按照这个。Salary,好,加一个字段,那我们现在查询的是这三个段,From employees,接下来的话呢,咱们得先写这个where。先写这个where,比如说where呢,我们就,嗯,我就这样来说吧,我们考虑这个salary呢,是这个大于比如说6000的,这是一个它然后呢,在order by。Order by呢?我们按照什么来排序呢?按照这个salary吧。这个都可以death按照它的一个降序排列,然后那在这个基础之上呢,我们先看一下这个效果,这就这样子的,一共是有55条数据,是不是按salary这个降序排对吧,然后在这种场景下呢,我们再取一下这个limit。哎,再取limit,比如说咱们就想取前,哎,注意看啊,我现在想取前十条记录怎么写啊。是不是就这样写就行?你看我这换了一个描述方式,咱们可以说呢,我想显示第一页数据,一页呢,显示十条,我是不是也可以说呢,我就想取前十条数据啊。
14:04
是不是从头开始取十条数据,是这意思吧?好,我们选中了,执行一下,这就是前十条数据。哎,前十调数据这个呢,再顺便说一下,还有一种简便的写法,就是我们把它呢,比如注释掉。也仅限于我们这种场景,什么意思啊,你看我直接写个十来选中来走一把,你看是不是还是这个数据对吧,那这个。哎,咱们刚才说了这个limit后边其实相当于是不是有两个参数啊。有两个参数,嗯,这个我们通过这个呢,来去强调一下这个limit,哎,这个格式啊limit。它的这个格式呢,严格上来说。啊,它分成了它它呢是有两个参数,就是limit,后边的话呢,首先我们要写的是一个叫嗯,叫位置偏移量。哎,这叫位置偏移量,然后的话呢,我们称为呢,叫条目数。或者叫行数啊也可以,这是它的严格的格式,那么呃,这个特殊时。
15:05
哎,或者这样说吧,呃,我们说的叫呃,Limit。这个厘米呢,如果我们写成是零,写成一个条目数。在这个具体的结构。哎,我加个引号结构它。哎,等价于。等价于呢,就是我们只有一个。Limit,然后后边呢,一个条目数能看懂吗?大家。就是我们严格来讲呢,这个limit呢,它是这样的一个格式,咱们上面讲的这个呢,也满足了一个格式,但是如果说你就是从偏移量零就是从头开始的话呢,那你这个零呢是可以省略的,那就直接写就可以了,所以这俩呢其实是一个意思,但是你要说我从这个偏移量一开始,这个就没法省略成这样写了。啊,这个小心一点好,这呢就是我们取的是不是前十条记录通过这个呢,我们强调的点就是说大家呢得先写where,后写B,最后呢写这个limit。
16:08
目前呢,咱们讲这个select结构呢,最后这个是limit,整个呢,咱们回头讲完select之后,Limit呢,也是在最后的。或者呢,再说呢,就是这哥俩呢,是垫底的。它俩是垫底的啊,这个要注意一下,它俩呢,也得先写order by后写这个limit才行啊,好了,这个呢,就是我们说强调的这个,呃,Limit首先它的一个位置,然后呢,具体这个格式该怎么去写的啊,弄清楚是吧,好。嗯,这个清楚以后呢,你看回来我们看这个课件啊这块这个关于背景,就咱们在什么场景下呢,会用到这个limit,第一个说记录太多了,不方便,我们想分页显示,咱们诶已经提到了一个如何分页显示,包括公式呢,也给大家讲了对吧?啊这个然后下一个呢说呃,如果表里呢有四条记录,我们只想查看第二三条记录怎么办。那你现在想是不是咱们也做好这个需求了呀。做好这个需求了,你比如说我们CTRLC一下,其实咱们这个上边这个呢,呃,也算是一个,但是不是那么严格了啊,咱们就这块儿来提一个需求吧。
17:09
练习也行。我们现在这个表里呢,针对咱们这个员工表是不是有107条记录,我们想显示第我就随便随便来一个吧,比比如第32条数据,呃,显示第32和第33条数据,诶这个大家你看会不会做呀。说这没讲呀,其实咱们也讲过了,就是咱们现在用这个limit就能做这个事吗?选那个查看一下,这是叫employee ID是吧,这个哎,比如说我们再看一下last nameme from employees,然后直接来个limit,诶我们现在这个偏移量的话呢,你是不是就从这第32条数据这怎么写啊。偏移量的话呢,是不是应该写31啊。想想。是吧,是不是应该写31,比如说我想显示第一条数据,第一条数据我们这写的是零,第二条数据这写的是一,第32条数据是不是就写31啊,往前第一页推一个数,那俩是吧,那是不是就得来个二啊诶。
18:02
一封就可以了,这呢就是我们这个需求。哎,就这两条数据,所以这个呢,后边这个参数呢,就是叫条目数是吧,哎,叫条目数好这呢就我们说的这个练习,那基于这个练习呢,咱们再谈一个2.3。2.2.3了,就是在5.7当中啊,咱们说到这儿就完事了,那么在咱们这个8.0的时候呢,咱这有一个新特性。嗯,我写哪写这儿了,有个新特性在MYSQL8.0里边呢,它有一个关键字叫offset,诶用这样的一种新格式呢,也能写,就是大家的话呢,那如果说我们不讲这个知识点的话呢,你就用原来的方式写是没有问题的,那呃,有可能呢,别人呢,用8.0新特性了,到时候一看,诶怎么没没学过是吧,这个呢,就是别呃陌生了就行啊,咱们说一下这个my circle。8.0它的一个新特性。对这个新特性的提到了这个limit,然后写一个数,然后逗号一下,哎,不是逗号了,直接在这啊offset,然后又一个是吧,然后如果是刻画咱们上边这个练习的话呢,该怎么做啊,我直接一说大家就能明白,我现在还是做咱们上边这个需求。
19:08
那还有需求的话呢,那如果你这样去想说,我把这个加一个opposite,这个是不是就完事了呢?那你就想简单了。啊,你看我们这时候选中,按说呢,我这样我截个图。按说呢,咱们查出来是不是应该是这哥俩是吧,但是现在呢,你看我们选中走一下子,那你看出来了,31条记录显然不对是吧?那我们在上边这个当中第二个参数表示显示几条,你要按照下边这块去套,你看31条是不是成了这个参数了。啊就这样,所以说呢,这个8.0的心得性呢,偏移量后边呢,是不是指的这偏移量,咱们上边这个当中是不是前一个叫偏移量,所以说呢,把我们,诶在5.7及之前当中的这两个数你颠倒一下。颠倒一下啊,就是limit呢,这边表示显示几条记录,Oppositeet呢,表示平移量是多少,它俩换一下位置就行了,来你看我们再选中执行一下,你看是不是还是他俩。
20:01
没问题是吧,行,那8.0这个新的新的性呢,也比较简单,就是公式的话呢,大家是不是仿照着这个公式,你把这这个两个参数呢,换一下,中间改成把逗号改成oppositeset,是不是就是我们8.0中的这样一个写法了就行。OK吧?啊,没问题啊行,那么关于咱们my circle当中的一个分页啊,咱说到这儿呢,也就完事了啊完事了放到最后咱也都说了是吧,然后好处的话呢,那会儿也讲了,就是提这个减少传入量了,因为只返回一波数据嘛,那自然而然的的话,你数据量小了,效率呢也就高了是吧。也基本上完事,诶你看这块有个这个问题哈,LIMIT1LIMIT1呢,是不是相当于LIMIT0逗号一啊。那咱们刚才那会儿也提到了,是不是说这个方式是吧,哎,你光写个数呢,相当于是后边这个强木数的意思啊,这个其实知识点讲完了,只是说这块呢,一个小练习,看一下这个练习什么呀。咱们还没有讲这个,嗯,叫聚合函数呢,啊,我现在做一个练习,叫查询员工表中这个工资最高的。
21:07
工资最高的这个员工信息,但是你看那我这样写的话呢,是不是就select,比如说。那。An employee ID是吧?然后呢,这个last name,咱们再来一个这个salary吧。From,就后边呢,咱们会去讲,用这个叫聚合函数或者叫组函数来去实现,那现在呢,咱没有讲,你看我们怎么做,我这来个order by叫salary。那D哎,这样的话呢,我们是按照这个工资倒序来排。嗯,哪写错了。啊,这个表小S是吧,好,你看这块呢,错误信息呢,大家那块,呃,刚开始写的话呢,肯定会出很多的这个错误信息,出来错误信息之后呢,你不要这个呀,就慌了是吧?哎,你接着看一看这个到底是什么样的错误啊,通常这块呢,显示的都比较清晰。
22:01
行,那选中啊执行。这时候呢,把所有的员工呢都显示出来了,那最高工资的显然是不是就是100这个king这个人啊,我就希望呢,光把他显示出来,其他的都不要,那其实不就相当于我们,你要是考虑说分页的话呢,是不是就是这样的,一页显示一条数据,只要第一第一条,只要第一页是吧?哎,我就LIMIT0逗号一是不是就搞定了。哎,选中走一把那没问题啊,那这个的话呢,你也可以把它。诶是不是写成叫limit。LIMIT1一下也行,零呢,相当于就给省略掉了啊,还是它这呢,就是一个小练习而已,那知识点呢,咱们都已经讲过了,好,那么关于my circle当中的limit啊,咱们也就说到这儿了啊,就足够了,下边啊,作为一个拓展,这个有兴趣呢,大家就现在扫一眼就可以了啊,什么意思看一下。咱们呢,实现这个分页的话呢,在其他的数据库当中,咱不是说这个circle呢,是一种标准是吧,咱们刚才讲的其实是circle这个标准在my circle当中的体现啊,分页呢用的是limit。
23:06
那么在其他的一些数据库当中,比如说这个PG circle啊,Post GR啊,PG circle啊,Maria DB,还有这个circle看诶这块呢,多说一句啊,这个很多同学呢,一看到这个叫你要说叫Mar瑞DB,一说DB啊,知道是什么什么数据库是吧,那一看到my circle啊,首先呢说诶my circle跟circlel是什么关系啊。啊,这个post circle跟circle是什么关系呀?别蒙了啊,千万不要蒙了。啊,这个嗯,比如说说C语言,这是一门语言是吧,哎,这个C加加呢,也是一门语言,这个呃,咱们说还有一个叫objective c是吧。Objective c,就苹果呢,用的那个开发苹果操作苹果操作系统以及APP应用的这样的一个语言啊,后边又有这个Swift是吧,Objective c。啊,Objective c呢,你看这是个语言,C是个语言,Objective c呢,也是个语言,千万别到这儿蒙了,说circle呢,是一个语言,操作数据库的my circle呢,诶,也是个语言,我的数据库是吧?哎,这就搞笑了啊,哎哎,不是我的数据库,这是一个语言,那就错了,咱们这儿呢,是数据库啊,这儿呢是一门语言啊,别别晕了。
24:15
啊,别看到这儿觉得这是数据库,加上这个SQ的话呢,就不认为是数据库了啊,这个注意一下好。那我们这里边说一下,在这些数据库当中啊,要想实现分页呢,用的也是这个limit,当然如果呢,你要是在这个SQL server或者access,那这样的数据库当中呢,我们说要是呃使用的话呢,就用这个top了。Top,比如说取前几的。啊,取前几的这个我就不演示这了啊,你要用这个DB two的话呢,就IBM家的使用这个叫f first啊,比如说几行啊数据啊,它是写在也是在最后边是吧?啊如果你要是Oracle的话呢,使用的是这叫number。啊,Road number来进行的这个统计。哎,Road number来统计的这个Oracle呢,因为我这块是不是也装了,那咱们就在这块呢,哎,让大家呢看一把,就是相当于有一个拓展啊,这个呢,我们我在这块呢,加一下写哈2.4,嗯,需要注意的就是我们limit。
25:10
啊,可以。哎,可以使用在,哎,我们提到了是不是有这个哎,MY。嗯,My circle啊,还有呢,我就简写啊,叫PG circle。啊。PD,这个circle还有呢,这个我们说叫马瑞DB。哎,马瑞尔。哎,还有哪个看一眼。哎,瑞DB还有这个是吧,就是我们在这个像移动设备当中。哎,用的是这个Li,哎当。哎,数据库中使用。啊,表示这个分页。啊,那尤其呢,注意啊,不能。那使用在啊,不能使用在哪呢?一个是咱们这个circle server。哎,这个不行,然后DB two也不行,还有呢,Oracle也不行。
26:04
哎,这个事儿呢,大家关注一下,那比如说咱们刚才呢,呃,做了一个需求,我就哎,我就随便拿一个吧,比如就以它为例啊,我CTRLC一下咱们这个表employees表,我这儿呢也同步的放到咱们这个,呃,Oracle当中了啊,这不table在这儿呢,大家用不着去做这个事儿啊,你只需要呢,看懂我这能演示就行,摸起来的星先from下imp employees。选中执行,你看这呢是不是,哎,我这块点一下它啊,是不是也一共有107条记录,对吧,这就跟咱们这个MYSQL当中,我用的这个表呢,是完全一样的,行,那么我现在呢,把这个需求拿过来,我想查询一下这个employd,还有这个last name,哎,这个三十一二啊,相当于我们是从第32条数据查的,查两条选中走一下,你看是不是报错了。报错呢,这块就显示到这儿了,其实意思就是说咱们这个limit啊,它是不支持啊,不支持咱们在这个Oracle当中来使用的。
27:02
啊,是这样一个问题,那这块我们这个既然不支持了,我们该如何去做呀,这个我们说是啊是错误的是吧,这个怎么办呀,这个呢,我们就会要借用一下这个Oracle当中它所特有的一个字段,这个字段呢叫做number。哎,叫做number,你看我加上这个room number了,咱们先看一下啊,走,大家看我们这里边呢,你看employd,和last name呢,是我们表当中的哎字段,而这个number呢,是咱们的一个隐藏的一个字段,这个不是咱们这个表里边有的,你像咱们说这个DA employees,咱们查看这个表的这个结构,对吧,这个表结构当中啊。DEC啊,Employees啊,这块呢,咱们得在这儿来看啊。嗯,我用一下,嗯。空的test啊,命令行在这儿啊,De。E啊,Employees是吧,这块你能看到我们这个员工表当中的这个字段,你看这应该是多少个。
28:00
三四五六七八九十十一个字段,这11个字段当中啊,是不是不包含咱们刚才说的。我把这个关一下。不包含咱们刚才说的这个叫做number的一个字段,对吧,这个呢是诶给我们自动在每一个表当中都提供了一个隐藏的一个字段,或者叫一个列。那隐藏一个自转火力,好,我们刚才这样呢,去查看的时候呢,是不是看到了它这有一个顺序。对吧,它它有个顺序,然后呢,我们呃这时候呢,你比如说我们想查询这个第32呃第呃这或者咱们比这个这个需求其实要求还挺高的,咱们比如说就先简单一点,咱们想查询这个前啊前十条记录吧。哎,前十条记住对吧,那这个怎么做呀,这个时候呢,我们就可以,诶写这个where啊where什么呢,叫做a row number,它呢就是小于十倍。哎,用number小于十来,我们选中的执行一下这长一共产品出来的,这不就诶这个一二。
29:00
呃,这是相当于是我小于十了啊,你要是前十条是不是得加个等号来这块我们选中执行,这不一共就是十条记录嘛。那就是如果我们想查看啊,说呢,指定的说几条记录的话呢,我们需要借助这样一个字段。那这个呢,比这个需求其实要难一些,呃,我就不想具体来讲了,大家有兴趣的话呢,你可以关注一下咱们这个B站啊,这个B站的话呢,我在应该是2013年的时候呢。2013年。那啊,我录了一套这个I Oracle的这个视频。那在这个Oracle这条视频里边呢,我专门讲了一下如何实现这个分页操作的啊,你可以去搜索一下。啊,B站。啊,大家直接在这就搜索一下这个Oracle是吧。啊,出来啊,Oracle这个咱们商股的这一套视频啊就可以了啊,这里边有具体一个分页的一个实现,我就不想在这多讲了,来稍微呢提一下这里边坑是什么呀,就这个room number呢,它默认的,默认的话呢,就按照我们这个表中添加数据的这样一个顺序呢,来去呈现的,如果呢,你想呃,咱们提什么需求呢?我想按照公司排序之后去前十条是吧,这是一个需求啊,这个时候呢,其实就不太好做的啊,诶需要用到这个词查询了,然后呢,再提一个需求,就是说我想查询的不是全是点了,我想查询按照salary排序之后呢,呃,查询第20到第30这一个段的数据。
30:22
那比我们刚才说的前十条还要难啊,我就不想在这展开来说了,大家呢,如果你在开发当中用的是Oracle啊,那你就去看我们Oracle的这套视频当中的实现方式,那如果大家是MYSQL的话呢,那你就庆幸吧,因为咱们现在在MYSQL当中实现这种呃,显示第多少条数据的方式啊,是比较简单的是吧?好,那么关于分页啊,咱们就说到这儿啊,这一章讲了排序,讲了分页,整体来说呢,不是特别难,哎,大家呢,把这个练一下。
我来说两句