00:00
咱们上一节的话呢,讲的是这个日期时间的函数啊,大家看到呢,我讲的比较多哈,就咱们花了将近这个一个小时的时间,呃,那实际呢,在线下授课的时候呢,呃,在讲这个单行函数的时候,我不会讲的这么丰富了,呃这个为了录这段视频呢,我把这个函数呢又重新的加重了,那希望的话呢,就是呃,我花了时间呢,能够给大家呢去节省时间,什么意思啊,就是大家在写测扣的时候呢,如果说啊,你涉及到了这个,呃,这个数值类型的,字串类型的,或者日期时间类型的这个操作了啊,你需要做一些处理啊,那这个时候呢,大家你直接拿到我这个课件呢去翻啊,你对应的函数就可以了。那我这里呢,呃不能保证说呃把所有的我们涉及到这个MYSQ中的函数全列到这儿,但是呢,我已经列到95%以上了,就是有个别一些呢,特别不常用的我就没有往这儿放,那那相对来说常用的我就都放在这儿了,所以大家呢,可以把我这个课件这一章啊,当成是一个呃字典一样是吧?诶或者我们这个官方的一个文档一样,直接呢去做一个查找就OK了。
01:05
啊,所以我们刚才讲解的时候呢,呃,我花的时间长了,呃,其实是为了节省大家的时间,就省得你下来了自己再去摸索去探索啊画的这个愿望时间了。好,那么接下来的话呢,咱们看这个第五波叫做流程控制函数啊,咱们说呢,任何一门编程语言是不是一定都会涉及到这个流程控制啊,那典型的话呢,就是顺序结构啊,这个分支结构和这个循环结构没问题,好那么这里边儿呢,我们来看一看这个流程控制在思库当中是如何提供的啊,都有哪些。那流程控制的话呢,我们看到首先呢,这有一个叫if啊if value啊value value啊,这个看不太懂什么意思啊,说如果这个value是true的话呢,我们就返回它。哎,如果这个value呢,它要不是处的话呢,我们就返回它。不是处就反回它就相当于是一个二选一,是这意思吧,好,那我们接着看它这个呢,叫if no,说如果我们这个值呢,它要是不为no,我们就直接返回它,如果它要为no呢,我们就返回这个值,哎,其实咱们前面讲那个奖金率的时候呢,是不是就提前预知用了一下这个函数啊。
02:12
好,接着这呢叫K村。啊,一个条件在问Z,问Z最后一个else啊,一个N结束啊这个呢,我就先不具体详细说了,一会咱们举例子啊,然后下边呢,还是case问Z,但是此时呢,你注意在case和问之间呢,加了一个表达式。哎,然后问政问政啊是这样子的,那如果大家呢,你学习过Java的话呢,那我这块呢,做一个这个类比咱们这个case问啊一个条件是可以写这个范围的,所以它类似于我们Java当中的这个多选一叫if else if else。然后这呢,就是我们呃,Case和问之间的有个表达式啊,类似于我们Java中那个Switch后边写的那个表达式,然后呢,Case后边的常量,那就类似于我们张话中的叫Switch k啊这个结构。啊,这个结构OK行,那这块呢,我们来这个做例子来说明一下啊,这个是咱们这个第四波是吧,叫哎流程控制啊函数。
03:07
好,那看一下我们刚才都提到哪几种了啊,首先呢,是不是有这个if,然后有一个value。啊,然后呢,Y61啊Y62啊,根据我们第一个它的这个值是真或者是假,它要是真的就输入这个,它要是假呢,哎,就输入这个。对吧,哎,是这意思好啊,那我们比如比如说这个I select叫lastname,叫一个salary。然后呢,我这来个if啊,比如说我们这个salary,咱们画一档啊,说大于这个6000的啊,咱们这呢,写一个叫高工资。啊,然后呢,这个呃,低于6000的这个。把等号呢,我们也算上吧,大一点6000的叫高工资啊,不足6000的呢,我们叫这个低工资。啊,像在北京的话呢,这个薪资过万的,对啊,这个认为呢,就算是偏高的这个工资了。啊,要这样来说的话呢,像咱们商务毕业的学生,基本上一毕业就都是属于高工资是吧。
04:02
啊,就是应该说呢,现在it呃,整体的薪资来说还是比较高的啊,整个呢说在整个全行业领域领域里边呢,一个是做it的,还有一个呢,是不是就金融啊啊这呢属于这个高薪的这个行业啊,已经这个很多年都是如此,呃,那这里边我们还能看到这个金融呢,诶更多的你需要呢,还得考很多证是吧,还有CPA啊,这个CFA啊等等这个证呢,还不太好考,而且呢,还看这个你是不是名校毕业的啊,因为你去的这个金融证券的话呢,这个都是一波一波的是吧?啊人家这个中层呢,全是这个上财的。啊,然后那个大大领导呢,都是复旦的,都是这个,呃,叫什么光华的啊,这个他还是会有这个帮派之说的啊,所以都得你得考名校哈,ID的话呢,整体来讲的话呢,还好是吧,国家呢,是不是都定性了,就是这个新时代的农民工了是吧?啊搞it的啊,这个可见的话呢,就是对学历呢,没有那么看重啊,只要呢,你这个能力啊,开发能力OK的话呢,这个薪资照样可以很高啊,你要是把这个经历呢,考这些证的经历都来学it,那早成了是吧。
05:01
好,那么拉回来啊,咱们看一下,我把这个呢选中啊,走一下啊就出来了啊,这个呢,我们又起这个别名,你也可以呢,在这命一个别名,显得让它短1.detailsok。选中。啊,执行OK。啊,这个再插一句哈,这个晚上的时候呢,呃,有一个上海刚毕业班的这个通讯员还跟我联系,然后他呢,是这个中南大学毕业的。嗯,中南大学的话呢,是不是也是这个985啊,就是还不错的学校,然后呢,他在班里边学的呢,其实算是一般哈,在班里学的一般,然后找工作的时候呢,跟我讲这个,呃,这个感觉都不可思议啊,他自己呢,找工作是拿到一个20K,这20K呢,就聊了20分钟。啊,就拿下了是吧,电话面试的还是啊聊20分钟说也没聊什么重点呢,就给开到20K了啊还有另外一个呢,开到这个19.6K啊都是做这个银行的金融的这个项目,你看呃,这个刚起步出来的薪资就不算低。啊,就是学校呢,如果好的话呢,呃,这个还是比较有优势的。
06:00
啊,学校比较好的话呢,这个出来就是刚才说it里边不看学历,但是你要如果还有学历的话呢,那肯定薪资就会高啊,当然还有同学说说这个20这也不算多呀,哎,这一方面呢,他学的不算是特别好啊,就是在中等的这样情况,哎,另外一点的话呢,就是这是它的一个起薪啊,在it这个领域里边,包括金融领域里边,它的涨薪幅度是比较快的,他完全有可能今年12K,然后明年的话呢,呃,这个它可以,这个当然double的话呢,是需要他付出很多的啊,即使double不了呢,翻一翻翻一半啊变成30K,这个呢还是比较easy的。哎,是这样的,行,那OK啊行这个拉回来,那我们接着来说这呢,我们就看到这个输出的这个效果了,相当于呢,就是一个二选一对吧。二选一啊,这个要处呢就执行它,它这个要是false呢,就执行它啊,就没问题,好,那我们再做一个练习,那select啊,Last name。啊,Commission。啊,PCD是吧,然后逗号一下if,那如果呢,这个commission p。
07:04
PCT是吧,哎,它呢叫e no。嗯,一直闹,嗯,他要一直闹,一直闹闹吧。他说要不为空呢,我们就输出这个commission PPT。那他要围空呢,我们就输出零。看D有好。From employees。能看懂吧,好,选中。执行。来大家看,就是我们这个commission PT呢,是咱这表里边一个字段,这个字段的话呢,有的是no,有的呢就不是no,那如果他要啊意思not no啊,这要是true,说明他就非空,非空你就把你自己输出。哎,就在就看这就行是吧,那你要是空的空的我们就输出是个零,哎这呢我们就解决这个问题了,这个问题要解决以后呢,咱们当时是不是就诶做过这样个需求,说我们去计算一下这个员工这一年到底挣多少钱,是不是乘以12,再去乘以这个叫一加上,哎加上谁呀,是不是加上我们这个式子啊。
08:01
CTRLC。加上它啊,这个呢,我们嗯括号没问题啊,这个呢,我们叫annual。I啊,一年到底挣多少钱啊,选中一直行,这呢,是不是就所有的这个都会有结果了啊,当你要是这个嗯commission批是闹的时候呢,我们就拿零的去替换了啊,就没有问题。好,这个呢,是咱们叫if这个操作,接着我们说这个第二个啊叫if no啊这呢一个value,然后这一个value。来看一下我们这里边。是吧,哎,一个Y61个Y6啊,一个是一啊一个呢是二,那我们这个if now呢,它其实可以看作是啊,看做是啥呢?咱们这个结构的一个特殊情况。哎,怎么来讲呢,哎,你看啊,我可以把这个呢,就是再改写成咱们这个if no啊,比如说我们select。啊,Select a lastname啊,Commission。哎,PPT,然后逗号啊,If now,咱们当初呢,不就是用过这个是哎,If now是吧,咱们当初呢,不就用过这个函数吗?Commission。
09:07
TCT,然后这个位置我写的是个零。啊,再来一个这个叫这details是吧。哎,From,哎,我们这个employees。好看一下啊,我们选中之后啊,执行一下大家看啊,我们这里边的意思就是,如果你这个字段呢,它要是不是no,那就输出你自己啊,不是闹输出你自己。哎,是不就你自己,如果你要是闹呢,你就输出后边这个,那后边这个我们拿零去替换的,所以上面这个就是零。没问题是吧,你看我们这个是不是跟它就是一个意思啊,如果他要不是no呢,这个是输出它,哎,你要是no呢,就呃输出,哎,这个是吧,哎,然后这块呢,它只能用来判断是不是no,而我们这个呢,你可以很灵活,你想判断一个范围啊等等的是不是no啊都可以,所以这个情况if更一般,这个呢是呃它的一个特殊的一种情况,只能判断闹的这样一个情况。
10:01
好这呢,哎,就说清楚了,我们这里边的这两个这个函数是吧,哎,4.14.2,好,接下来我们看下边这个啊,4.3。4.3的话呢,就是这个case when then啊case when then,我们先说一个它吧,Case when合一起的啊,就是这样个结构啊,Case。问,然后呢,问再问。带正,然后来一个else。啊,然后呢,最后一个N的结束啊,就是这样的结构,好,我们直接呢,给大家个举例子就可以了啊呃,因为它这块呢,类似于咱们说Java里边这个叫多选一了啊,那我们就可以呢,就是列出了这种多选一的这种场景。比如说我们这里有last name啊,有这个具体的salary,好,这个我们怎么写啊,我这样写case啊,Case when,哎,为什么呢?哎,如果我们这个salary呢,是大于等于这个一万五的。啊,这个来一个Z啊Z什么呀,我们这呢,说的这个叫高薪。
11:01
没问题是吧,好,然后呢再问。问啊,如果这个三瑞呢,是大于等于这个1万的分一下,哎,我们来一个这个叫嗯。这个叫白骨精吧。啊,这是称呼这个女的呢是吧,叫白骨精,男的你可以叫高富帅啊,然后大于1万的话呢,我们称为呢,这个叫潜力股啊,有潜力啊,然后再来一个问。哎,Salary啊,如果是大于等于这个8000的。啊正啊,我们这呢,写一个叫。哎,这叫啥呀。再叫小屌丝吧。啊,其实屌丝的话呢,我觉得是一个,呃,不是说他就是个贬义词啊,就是一个呃,比如说这种屌丝的精神,我觉得其实也挺好的啊,就是快快乐乐的啊,没有那么多烦恼,然后也不要呃,也不会是特别那种小心眼的这种啊,屌丝的精神啊,有点那个阿Q的这样一种感觉一样啊,其实我觉得挺好的,尤其是在这个现代社会压力这么大的情况下啊。
12:03
好,那最后呢,来一个else吧,Else呢就意味着你是三轮小于8000的呗,小于8000的我们这个这都已经屌丝了,还还剩啥呀。啊,来一个这个草根吧。好,然后最后呢,一个N的结束,诶,然后最后收尾,嗯,记着啊,我们还有一个from的是吧,Employees啊。哎,这样行好大家看,那我们把这个三六的话,是不是就分成了1234,算是有算是有四种情况对吧?哎,算是有四种情况好选中呢,我们执行一下。啊,这个大家你会发现呢,它把整个这个呢,是不是充当了一个字段名,哎,不太好啊,我们这块呢,可以起个别名啊第一啊好选中啊再来执行。好大家看,哎,根据呢,他的薪资呢,看在哪个范围内,它就会显示相应的这个信息,这不就算是一个,诶也算是要多选一吧,是吧,多选一的一个场景,那需要大家小心的就是我们在问跟Z中间没有标点符号,Z跟下边这个问呢,也没有标点符号。
13:05
啊,因为呢,用不着啊,你想我们。这个证完了以后,下边就是另外一个问了。中间呢,不需要用符号呢,来去这个分隔是吧,哎,所以呢,我们就没有这个标点啊,然后最后这块呢,用N来表示整个我们这个结构的一个结束,所以也用不着这个所谓的标点了。啊,你要后边还有其他的字段呢,你再去加,比如我们加上一个叫department。ID是吧?哎,这么着啊,你要愿意加呢,是在整个这个之后啊,你再补一个字段啊,是这么个意思啊,这是可以的啊。好,这呢是我们说的这个问题啊,那我们有的时候呢,是不是也可以就是在Java里边啊,就我就以Java为例吧,啊,类似于咱们说Java的。啊,是不是叫if。然后else。If啊啊else if啊这个可以有很多,然后最后来一个else,在Java里边的话呢,是不是这个最后的else呢,是可以不要的啊,哎,是可以没有的,那咱们这个呢,其实也是可以的,好,我把这个我就去了啊啊这个怎么叫也可以呢,就是比如说我们就没有它了。
14:13
哎,就这么着。说这个可以吗?来走一下。是不是可以啊,哎,你看啊,相当于呢,我们满足这个情况呢,就是白骨精,这个情况呢叫潜力股,这个呢叫小屌丝啊那么哎,那要工资小于8000的呢,小于8000我没有说啊,不知道该输入什么,那小于8000的呢,自然而然他就是一个no。哎,就是这个意思。好,这个呢,就是咱们说的这叫kiss when啊,这样的场景叫多选一啊,哎,多选一。来,再接着我们看一下这个4.4。这个4.4呢跟4.3呢,其实有点像啊,区别呢就是在case和问之间呢,加了一个表达式。啊,在case和问之间加了个表达式来刻画一下。啊,Case。哎,加个表达式啊,然后问啊什么,然后再then啊,然后再问这个后边就一样了,问然后最后一个else是吧,然后N的结束,哎,这么着啊。
15:09
行,那这块呢,我们也做一个这个练习啊,这个练习的话呢,咱们可以参照一下,咱后边这块呢,有一个这个需求的啊,就来它。CTRLC。哎,我用这个多行注释啊。好,查询部门号为十二十三十号的员工信息,哎,若是十号部门啊,打印起工资的1.1倍,20号部门呢1.2倍,30号部门呢,工资的1.3倍,行,那这块呢,我把这个题目呢,咱们再先改一下,把它做成这个两个练习。啊,这个我们叫。这个叫练习二吧。啊,1.3倍,这个就没有考虑这个其他部门了,是吧?啊这是一个,然后呢,哎,在这个之前,咱们先做一个更为一般的啊练习一。啊,十二十三十三部门,然后其他部门。
16:03
哎,其他部门啊,这个这补一个这个逗号。其他部门呢,说打印起工资的有1.4倍吧。好,咱们先来做这个题。其实呢,整体上来讲差不太多。那我们去打印一下,比如说这个员工,我们叫employee ID是吧,然后他的last name,他的这个depart,我们也看一下它所在的部门。Department ID,然后打印它的这个salary,这呢就是它本身的这个表中的几个字段了,接下来我们选这个case。Case的话呢,我们需要呢去区分按照谁来分啊,是不是按照这个部门来分啊,所以我们case呢叫department ID啊,然后问。当你要是十号部门的话呢,我们是不是这样显示谁呀,显示它的salary乘以一个1.1。没问题吧,好,再接着啊,稍微变小一点,再接着的话呢,你是问。
17:03
是问啊,写成where。哎,问你要是20的话,正啊输出它的salary。啊,乘以一个1.2。哎,然后再问。啊,这个30号部门在。Salary乘以一点。1.3是吧。然后呢,这个其他部门是不是就else了,哎,就是salary。乘以这个一点。四哎,这样好,然后呢,注意最后是一个N的结束,然后我们给它起个别名,这叫details,哎,这么着是吧,然后最后呢,我们整个拉回来from一下employees。OK吧?来我们选中啊执行。好,大家看。这个这是他们本身的工资啊,如果呢,你要是十二十三十呢,就是乘相应的这些倍数,然后否则的话呢,就是乘的是1.4倍。啊,1.4倍啊,就是这样的一个整体的效果。
18:02
啊,这样的一个效果。啊,一共一共的107条记录是吧?啊真的就过了啊,哎,这块你注意咱们这块呢,只是显示的话呢,显示的工资的多少多少倍,本身呢,是不是没有改这个表中的数据啊啊这要注意啊,咱们还没有讲增删改操作呢啊。行,那这个呢,是我们说的这道问题,然后呢,我们再看一下下边这题,这个题呢,是不是只说十二十三十三个部门的呀,那相当于在上边这块呢,我说做一些修改就行,你看怎么改啊。这个咱们只查这三个部门,是不是我们后边就有个where了啊,Department ID in啊,十二十三十。哎,是不是这三个部门,那要这三个部门呢,是不是你也不会涉及到有这个else的这个情况了,是不是就直接这样封死就可以。啊,就会只是从这仨里选,哎,这样呢,我们就做成了啊走一下一共呢,就九行啊十二十三十这三个部门的,然后该乘多少倍就乘多少倍。啊就这样子的,相当于这个里边我们也演示了一把,就是没有else的这个情况是吧,哎,没有S也是可以的啊根据实际问题呢去选择就行。
19:09
那咱们说了上面这个呢,类似于Java中的呃这个呢叫呃多选一是吧,If LC if这个呢,就是很灵活了啊,我们基本上这个分支语句呢,大家都可以改写成这个if的这个结构,而我们下边这个呢,是不是类似于咱们Java中的啊,如果大家这个呃接触过这个Java的话呢,就是Switch和case这个结构。啊,类似于他,那如果大家没有接触的话呢,嗯,你就当我这块没说啊就可以。好,那么咱们关于这个,诶流程控制这块这个函数呢,就说完了。啊,我们就说完了。那说完以后呢,大家有没有什么疑问要问的吗?有没有问题要问?那同学,哎,这该问什么问题啊?不知道该问啥了是吧?来,我来问个问题啊。咱们讲别的语言的时候啊,大家接触过的一般流程控制啊,咱们刚才我其实在一开始的时候呢,就我埋了一个伏笔啊,是不是有顺序结构,有分支结构和循环结构啊。
20:08
顺序结构呢,就是咱们程序呢,从上往下执行,这个默认呢,就是顺序结构的分支结构呢,你看咱们现在讲的这四个是不是都算是叫分支结构啊。你二选一啊,三选一啊,还是多选一啊,这不都是分支吗?或者叫条件判断是吧?诶相当也讲了,那问一下为什么没有讲循环结构啊。流程控制怎么能少了循环呢?这个怎么理解啊,哎,如果要问到了怎么说。循环。啊,循环是吧,哎,循环说一下咱们现在写的这个circle,大家想是不是说自带循环了呀。你说什么意思呀,你看哈,我这块挑一下咱们这个语句,我这块执行一下,你发现呢,是不是有107条记录出来,在107条记录是不是也是一行一行一行一行的输出的呀,第一行看你两万四哦,你是白骨精,第二行一万七啊,你也是白骨精,第三行第四行这是不是自带循环了呀。
21:08
是吧,哎,咱们查询呢,自带循环啊,咱们后边呢,在讲到什么的时候啊,讲到这个存储过程,存储函数的时候呢,我们在里边需要自己来定一个,呃,这个过程流程的时候呢,我们到时候呢,再涉及到这个循环的问题。哎,咱们再讲这个循环,咱们现在的这个现成的这个查询语句里边直接自带循环,所以呢,就不用再去涉及到循环这个结构了啊OK,行,那么关于流程控制这块呢,我们就说到这儿,根据大家实际在场景当中的需要呢,哎,你这块去哎这个使用啊就可以了。
我来说两句