00:00
接下来我们来学习常用的蛇口操作,首先我们第一个查看所有的索引,所有的索引呢,你会发现它的指令是查询我们的表。所以咱们前面讲过了,ES软件当中,我们的索引其实是可以看成表的,那么好拷贝。之后,那么我们在这里呢,直接来点击箭头,你会发现我们现在有一个索引,没有任何的问题,它的类型有没有发现就是个table行,接着往下说,查询指定的索引,其实就是增加了一个我们的匹配条件,所以我们拷贝。宝贝,诶把它放过来,我们执行,执行以后你会发现我查询不到,对不对,查询不到。去掉加上一个百分号行不行呢?点一下点击以后就出来了,是不是有点感觉像模糊查询呢,对吧,加了一个百分号就可以了啊好,我们继续往下,接下来我们来看查询索引结构,我们原封不动拷贝。
01:02
拷贝以后拿过来,我们这是describe啊,这个指令我们点击它,那这样的话我们这里是没有的,哎,我们写上它,咱们叫my circle,我们的index对不对?哎,所以我们这么来写啊,下划线,嗯,把它放过来,但是我们这么拷贝以后有问题,为什么有问题呢?因为我这里有一些特殊的符号,我们在当前的SQ文中是不识别的,所以说你点击箭头之后,它会发生错误,那该怎么办?很简单,用双引号把它包起来,用双引号之所以能够把它包起来的原因是因为我的外层用了三个引号啊,这个需要大家注意一下,所以我们点一下箭头,点击之后,这就是我们当前我们索引的信息啊,咱们通过这个指令把它查询出来。好,我们继续。下面呢,是我们的基础查询操作,我相信啊,这些大家学S口文应该都是学过的,对吧?比方说select表达式,From where group having order limit,这不都是最基本的语法嘛,所以啊,咱们就挨个演示一下就可以了,不用做详细的解释,对吧,大家应该都是明白的,好了,我们直接拷贝吧,拷贝以后我们拿过来把这个呢,我们去掉。
02:14
去掉以后看一下我们的基本操作是什么呢?我们的基本操作呀,就是查询我们的索引,然后呢,判断名称等于Java,诶咱们这个名称我点一下,你看我的Java不就出来了嘛,对不对,那就是一个最基本的条件呢。然后呢,再往下,下面呢是group分组操作,那么分组操作的话,首先大家可以看到我们先查询所有数据啊,所有数据我先查询出来,我们的数据查询出来以后,我们接下来呢,就可以进行分组了,它的分组呢是用到了我们的这个时间,所以我们原封不动把这个拿过来,拿过来以后我放到后面,我点击箭头,你会发现它会失败。失败的原因是因为我们这里前面写的星号,我们前面的查询结果,它应该参与分组或者在聚合函数之内,所以这是基本的蛇口要求,所以把这个放过来其实就可以的,对吧?哎,这个大家应该都是清楚的,好了,我们继续往下,下面呢是对我分组后的数据进行过滤操作,所以我们把这个咱们拷贝一下。
03:17
拷背以后,咱们来分析一下这个操作,那么这里呢,我们首先把这个from呢,我们给它折个行对吧?然后呢,把group我们折个行,然后把这个having我们折个行,那我们来分析一下我们这个地方是干嘛呢?是我们按照我们的时间进行分组之后,然后呢,求我们的页面的数量,如果这个数量大于1000的话,把数据给我展现出来,它是这么个意思。好了,那这里呢,我们一块来看一看我们的查询,查询以后我们这里并没有对不对,为什么呢?因为我们没有嘛,因为我们是三个时间是不一样的,所以我可以改一改,我把我把它改成什么呢?我们的100,那我们点一下点点击以后你会发现我们因为只有一个嘛,所以我们的数据呢,都比较简单,对不对?哎,我们这里呢,主要是想告诉大家,我们的基本蛇口语句跟之前是没有区别,这个数据倒是无所谓了啊好,咱们继续往下,嗯。
04:12
下面呢是我们的order by,咱们叫排序,那我相信这个也不难嘛,根据我当前的页面的数量。进行排序,DC是我们的降序处理,所以我们拷贝。放到这里,我们点击它,那么这样的话,我们会按照我们的数量来进行一个降序排列啊。行继续往下,下面呢是我们的一个查询,这个查询会限定我查询的条数,所以我把这个呢,我们拷贝一下,拷贝之后,那么这里我们会发现它有三条数据是给它个一呢,我们就点击它那的话只会有一条数据出来了啊这个其实在MYSQL当中可以做分页查询,对吗?OK。下面呢,有一个叫游标,咱们叫castle,这个castle呢,其实是准备了一个临时的缓冲区,把我们的数据放到缓冲区里面来做我们的快速查询,用的什么意思呢?咱们往下看,往下看以后大家可以看到我们现在有这么一句SQL语句,咱们往下来。
05:15
这个呢是干嘛呢?是把所有的数据给我查询到,查询到以后,那么这个时候按照我们的数量进行降序排列,然后呢,我们点击箭头,点击箭头以后,我们这里用到的是一个Jason,那么我们查询两条数据,你会发现在它的最后会多出来一个castle。为什么呢?因为我们的数据可不止两条啊,但是我们需要不了那么多,我先取两条,那么好,你先取两条,其他的数据呢,我们说放在这个缓冲区当中,可是我怎么访问这个缓冲区呢?哎,就用这个卡Le,它所代表的这个值就可以了,所以我把这个值我先复制过来啊,我复制过来我一会会用得上,我们拷贝过来以后,我们怎么去访问下一次的数据呢?我们来看一看,这个时候它就需要用到我们的castle了,哎,所以我们来拷贝啊,把这个拷贝拷贝我们拿到下面去,下面这个地方我们就不能用它了,我们写上它去掉,我们叫做castle,嗯。
06:16
把我刚才的它,我们原封不动的拷贝,拷贝完成以后,点击箭头点点击以后你会发现这就是我刚才还剩下的一条,总共有三条,刚才显示两条,我这里不就显示的第三条嘛,对不对,这就是一个游标操作啊好,这个给大家讲一下,嗯,那么讲完以后他说了,如果执行以后没有结果返回,说明我的游标数据已经处理完毕,我刚才的这个地方还有数据,说明我们现在还有,那我现在如果再执行一下,你会发现为空,说明我们现在已经没有任何的数据了,那好,你再去执行,你就会发现这个时候他就会报错了,所以啊,我们这里会有异常产生,为啥呢?本来都告诉你没数据了,你还去访问不就没有道理了嘛,对不对,就是这样啊。
07:05
然后呢,接着往下,他说了,如果关闭缓冲区,我们执行如下指令,缓冲区也是需要消耗资源的,所以当你用完之后呢,我们其实可以加上一个我们叫做close,对吧,把这个操作一下,我们这边来,大家可以到我们这里呢,就叫斜杠啊,我们的close,但是它没有提示呀。所以我们这里点击箭头把它停掉就可以了,好了,这是我们的一个游标操作啊。
我来说两句