00:00
那接着的话呢,咱们看一看这一章的课后练习习,哎,咱们回到这个练习章节,练习排序与分页对吧?哎,看一看这里边儿这个题目。那整个呢,我们说这一章的练习呢,其实呃,这这一章的难度呢,其实是不大的,哎,就是大家呢,掌握基本的排序和如何去实现分页,或者显示指定的要求的某一段的数据啊就可以了,来我们回过来我再去新建一个。啊,把他那粘过来。啊,这呢,我们称为呢叫排序与分页的课后练习。课后练习好,把这个呢,我们整个选中CTRLCCTRLSCTRLV啊保存到我们这块,哎,保存一下来,我们看一看,这里边儿这个题目不多,就这三道题。第一个说查询员工的姓名、部门号和年薪是吧?按照年薪的降序,姓名的升序排列啊,这呢相当于一个二级排序了,好,Select查询一下last name这个department ID是吧?年薪那就是salary。
01:08
那这里边呢,我们其实想练的点呢,比如涉及到用这个列的别名呢,是不是去排序啊,Salary OK annual salary,好,From employees,然后哎哎,没有where了啊,Order by,嗯,按照年薪的降序啊,这是年薪它的一个别名,那降序DEC。哎,这块注意呢,咱们就用这个别名,你别拿着这个去排序了,这还得做运算是吧?OK order by啊,我们说这是一个,哎,年薪降序排,然后再逗号一下姓名last name升序呢,A可以省略,也可以写上啊,仅此而已,好,完事了。先按照他的一个教学。然后呢,再按照这个姓名的是一个升序。那找一样的,我们就是你要这个公司呢,本身这块都不一样了,那你就不会考虑这个按照二级排序来排了,只有一样的时候,比如说144啊,1440000是吧,就是14万多这个他们仨里边才会满足这个拉内再去比这个二级的。
02:08
好比较简单,下一个说选择工资不在这个范围的,那这个哎这块大家写这个SQ越来越多,查询的话呢,其实也发现套路了,选择什么什么的,这呢,其实是一个过滤条件,那我们写到where里边对吧,然后后边的什么呀,这就是我们要查的这个字段。然后再后边这些呢,哎,就额外的啊,涉及到有排序啊,分页啊,哎,我们再看后边这个字段就行好首先呢,我们先select呃,员工的什么呀,姓名和工资。诶,Lastname和他的salary是吧,From employ employees。诶没问题,这个姓名和工资好,然后工资呢,不在8000到一万七的,这个咱们前面讲这个运算符的时候呢,里边讲了还挺多的方式啊,哎,我就写一个比特的吧。那salary not比去。
03:01
8000。And啊17000是吧,不在8000到一万七的这个这个员工的信息,那这就完事了,然后下边呢是order by。这个公司要求按照salary这个降序排de好,完事了,然后显示第多少条的数据,那就来一个limit。嗯,第20条第二条那便移量呢,我这就20倍到40条,21~40,这一共是20条数据吧,诶是不是就这样来处理啊。好,这个写完之后的话呢,大家你再搂一眼,你看看这里边描述的信息,你在这里边是不是都有所体现,查询这些,这样你可以这样查询这两个字段没问题,公司不在这个范围内的啊,那这块呢,是不是在这也体现了,诶工资的降序这也体现了,然后显示多少条记录啊,是不是也体现了。好没问题,好,那选中以后大家来执行一下就可以了。啊,我这块呢,就相当于一次性都写出来了,嗯,大家呢,在执行的时候也有可能什么呀,你一执行发现也没报错啊下一个哎,这个注意一下,咱们前面稍微我提过一次,就是说你写这个词后语句呢,比如我们这个一选中啊报错了,报错的话呢,你看看是哪错了。
04:09
这肯定是不对了,对吧,你放在数据库服务器,那肯定执行不了,那即使这块你执行对了,比如我把这块一选中一执行啊没报错,但是没报错呢,也不一定,我们这个是满足人人家题目需求的。啊,比如说这里边儿显示这个段的,你这块就没有考虑到对吧。哎,也就是说呢,大家呢,你虽然SQ呢,执行出来以后呢,是没有报错,但是呢,你再看一眼,是不是满足人家体面要求了。啊,如果大家刚开始学习的话呢,你建议建议你怎么着呢?你哎加上一个条件,你就先跑一下。再加条件呢,再跑一下啊这样。尤其呢,咱们后边讲到这个子查询的时候啊,到时候这个查询的这个难度呢,差不多就达到一个顶峰了,哎,到时候呢,大家你注意写的时候呢,你可以写一部分查询,先看看结果,然后再去写查询,再看结果啊,到时候我们再说啊好,第三个查询邮箱中包含E的员工信息包含E的。
05:04
并先并先按邮箱的字节数降序,再按照部门数升序,好,这里边儿有两个需求。查询一下这个包含E的员工信息,他没说具体哪些字段,那咱们就自己呢,给他写几个字段吧,比如说employee ID last name,再加上他的,比如说部门ID吧。好,Pro employees这个表,然后下边呢,包含E的员工信息,那就加到where当中,这个呢,咱们看怎么写,哎,Last nameme这呢,他没有说,哎,啊,这是错了,是邮箱当中包含E的啊这块,那咱们顺便也加一个email吧,这个字段。这样注意啊,我们这个过滤条件呢,是拿email说的,没有说这块一定要写,也写email的,我写上,只不过说呢,咱们看看结果中,呃,是不是确实包含E了,仅此而已啊,就是从语法上来讲,不写这块查询的时候没有email完全没问题。
06:00
但我们讲where什么呀,Email like,咱们讲这个模糊查询了。奖励运算符的时候说的对吧?小木查询,呃,Like什么呀,包含E的咱们写过,是不是就这样来写啊?包含一类信息啊,还可以怎么写啊。这个是咱们讲的这个like的方式,咱们先跑一下看看。一共呢,是有47条记录,那么在这email里边呢,你去细看一下,都包含这个一的啊没问题,好还可以呢,这样来处理,咱们也稍微的大大的,哎,提了一下是不是那个正则呀,那一一没有。啊,正则正则regular啊,Expression啊呃,这两个单词的前三个字母,然后呢,呃,包含这后边这个字符串,包含这个E就行。好,这样处理一下方案一就可以了,嗯,然后呢,我们跑一下,你看是不是也是这47条记录啊,没问题啊,就这俩写法都可以啊,就是我们这个正则表达式呢,表达的这个,呃,就是情况呢可以更丰富啊,因为这个呢比较简单,所以它俩呢是都可以。
07:01
嗯,先按照邮箱的字节数来降序,那这就相当于什么order by啊。邮箱的字节数来降序,首先邮箱呢,是这个email,我们要这样写的话呢,它其实这个比较规则是什么呀,就是咱们用的是UTF8。哎,同学说这个比较规则,呃,是什么意思啊,其实咱们在当初设置这个MYSQL的时候呢,有过这个事儿。那我先都收起来看一这儿。大家看一眼啊,这个相当于是个复习了,这个program data里边找到MY。然后我们这儿呢,是不是8.0里边我有个卖点I是吧,诶把这个你打开。咱们在当初改这诶这个他这块啊说错了,咱们这块呢,其实没改他就默认行为啊对吧,默认行为呢,这个当然我们也可以写那个指令啊,写那个指令啊,我们去收一下这个where boss也是可以的啊这个我我我就不写指令了,咱们看5.7吧,因为咱5.7呢是咱手动设置过对吧,那这个呃,比较规则呢,是在哪的呢?就咱们当时在设置这个配置文件的时候呢,当时设置过叫MYSQLD这里边呢,这个位置呢,就设置的这个字符集下边这个紧跟着呢,就叫做比较规则。
08:14
啊,一般它俩呢,一定是对应的,比如我们用UI8,那这块也也一定是UI8,这就要比较规则,用来干什么呢,来比较我们相应的一些,比如我们在排序当中,对吧,在排序当中,在这个呃,甚至有一些比较大小当中,我们需要呢用到的。需要用到的,比如说现在我们涉及到了说如果这样写email,那像这呢是一个人,这是一个人,它比较的话呢,就先从第一个字母比,那这个B跟L比肯定比较小嘛,就是这样一个字符一个字符来去比较,这就是用的比较规则。啊,U ti8是吧,U ti8呢,其实它又兼容了底层的这个X码,就是大家学计算机的最基础的啊,美国人做的这样一个字符集是吧?诶就是26个英文字母大小,这个大小写的还有零到九,哎,他们考虑在内,然后呢,有一个阿码的这个诶最比较小的一个字符集了,呃,这个UC8呢,它都是向下兼容的了。
09:06
啊,那其实就意味着我们像这个大写的B跟L比啊,包括小写的,大写的它对应的那个阿斯玛的数值,哎,这个呢,相互一减,谁大谁小就非常清楚啊好,这就不啰嗦了,那回过来。这个order by此时呢,你要这样写呢是不对的,因为它是按照邮箱来排序了啊,比如说我们此时呢,做一个执行,你看此时呢,给我们呈现出来的就是A在前边,B在后边,然后人家这块说呢,是不是按照这个字节数来进行降序,这其实是一个超纲的,咱们在讲到这个。咱们在讲到谁的时候啊。单行函数。在这在这个单行函数当中,我们去讲这个字符串里边呢,有求这个字字节数的这样一个操作,我就直接来了,啊,哎,这个就叫做length。那就他。那我这样报一下的话呢,就是按照这个邮箱的一个字节数,这就取得这个字节数的一个降序,那就是哎,De啊这么着,然后再接着呢,按照department ID的一个升序,它A呢,我就省略一下。
10:06
哎,这样来处理好,选中我们再来执行,大家看此时的话呢,我说这个油箱字节数,你看上面这都是比较多的,再往下是不是越往下越短。啊,又要下一段包含E的,然后呢,这个部门ID你看比如说我们都是这个比较长的,这个情况下呢,这个department ID,你看是不是这个顺序啊。没问题,那这里边你会发现呢,这个也有出现的,就这个这个长度一样的,这个还都是50的,那你还可以指定第三个这个排序的字段,那就是三级排序了,比如说按照这个employd在排是吧?哎,我这呢就省略了,因为咱这也没提啊好,那这样的话呢,咱们课后的这三道问题呢,就说清楚了,排序和分页,OK。
我来说两句