00:00
好,我们试一下,嗯,案例演示好,画一个这个哈,首先我们试一下第一种情况,呃,那么其实的话,我这个里边就可以没有参数,是不是只有返回啊,哎,那么所以说我们可以是一种叫做无餐有返回的,可以这样吧,哎,比方说我们做一个案例,我现在呢,想去返回,返回我们公司的员工个数,公司的员工个数看一下怎么去做员工个数啊哎,很好做吧,哎,Create,呃,Function后面我们叫MMYF一行吧,哎,然后这个里边呢,我们怎么写嘞?哎,没有参数,我这就空着,对不对就空着,然后return后面个数应该是什么类型,In,对,很好,然后是begin。
01:00
哎,到结尾,因为我早就在这个地方设置过那个Dollar了,对不对,哎,所以说我就直接这么写了哈,好,这个里边怎么写嘞,哎,Select count星号跟上了哈,然后from我们的员工这又用到了是不是employees表呀,哎,所以他应该用到了我的my employees库对不对?好,那么你这个查询到的这个值,我是不是应该干嘛呀,返回诶这个返回就麻烦一丢丢变量,对你像之前的话,我存储过程里边是不是它会有一个参数代表返回啊呃,那个变量我就不用定义啊,直接是不是给它赋值就行了,现在我有变量吗?没有,所以你必须是不是定义一个变量,哎,那我定一个变量使用declare啊,然后比方说起个什么名字啊,叫做C可以吧啊可以吧,It哈,比方也可以给它加默认值零。
02:00
哎,这一步呢,我们称为是不是定义一个变量呀,啊或者变量声明哈,那定义好了,我是不是就把这个值怎么样赋值给它,直接into行不行,行吧,那所以这一步的话,相当于未变量是不是赋值啊,哎,那就赋值了,赋完值了之后这就完了吗?对了,必须要加一个return return c分号,看明白了吧,所以它更加接近于咱们Java中方法的写法,对吧?啊好,那么这个就完事,我们再来一个调用哈,调用的话,这个用谁select我们的MY f1小括号到了是不是就结尾了,哎,那现在呢,我们去执行一下哈,好,这个我先跟它结尾了,然后我们这个是原先的,不用管它,我粘工我现在的了哈,那首先呢,他说这个new employees不存在,因为我是不是换裤了啊,My employees,好啊,Oo了,我们现在再粘过来。
03:00
啊,好不好使,是不是已然醒了啊,107哈,能看出来吧,啊,这个就已经对了哈,哎,那行,这个就是无参有返回的,好来再来一个,那么假如说我想加上参数嘞,那就是有参,是不是有返回啊好,我们做一个案例,案例一假如说呢,我想根据我们的女神,别女神了,咱们上午都用的是女神,感觉是不是有点有点太烦他们了,我们就用员工吧,嗯,比方说我,我这个是公司的员工个数哈,呃,我想呢,根据员工名返回他的工资,可不可以来返回他的工资,好怎么来写嘞,Create function,哎,然后MY f2小括号有没有参数,有员工名哎,比方我叫做那。
04:00
那个ERP name we叉吧,哎,We叉20,好,没有别的了,对不对,Returns,嗯,对,工资应该是double,好,Begin end Dollar对吧?好,这怎么写嘞?哎,你肯定要定一边量,是不是接入返回值啊?说到这儿我突然想问,我突然想问我这个你看我前面定义变量都用的是这种局部变量,对吧?你说我这个里边能不能定义用户变量呀,用户变量咱不是说自定义变量包括用户变量和局部变量吗?它们两个是不是主要就是作用于不一样呀?哎,说局部变量只能在这使,我有没有说用户变量只能在外边使,我说过这个话吗?没有,用户变量我是不是说当前都有效啊,那他能不能在这写啊?能啊,是不是也能呀?哎,可以的哈,那我怎么办呢?你比方我试一个啊,试一个意思说。
05:00
在这放局部变量也行,放用户变量也行,我用set可以吧,Set我定一个这个工资啊,Sal可以吧?啊然后当然你这个也可以跟大家复默认值什么的是吧,比方说等于零分号,哎,这个就相当于是不是我定义了一个用户变量呀?哎,为了大家复习的方便,我给大家把这个注释弄清楚一遍可以吧?啊行,再往下,嗯,你定义好了一个变量,我就得去查询,我说的对吧?Select工资,工资是不是来自于员工表呀?好,Salary是叫salary吧?啊打开employees好在在哪呢?在这对不对?Select salary from,我们的employees表,Where,我们的last name等于ERP name分号是不是这样的?哎,那么我是不是要为用户变量赋值啊,它也可以支持,是不是这种写法呀,In。
06:00
负,但是你知道最好加上谁呢?At Sao,所以这一步的意思呢,也是代表的是负值对不对,负值啊,让他俩离远一点好,然后呢,我们也一样,是不是要加一个谁return啊,后面呢,我们跟他加上at谁呢al分号看到吧,这样去写啊,可以这么干吧,啊行,然后呢,我们再去调用一下s select的MY f2,嗯,咱们来找一个员工吧,嗯,K是吧,K,我记得我是不是加这个来着,嗯,来确定一下哈。诶,对了是吧,来加了行,然后我们把这个粘过来啊,粘过来啊,然后说啥呢?哦,K是不是有两个king啊,咱们返回只能返回几个值几个啊,所以从这个地方也能看出来这一点对不对啊,嗯,我们这个名字是K的只有呃这个有两个,但是我们这个地方是不是只能返回一个呀,而且我很显然是希望得到了一个公子,是不是去返回啊,呃,那么咱们这个里边换一个人,嗯,咱们就蒙一下是不是就他吧,我觉得应该没有人还启成交这个的吧,这么难听是吧?来试一下,嗯,然后这儿呢,我们就要来一个比方说叫做啥,我又忘了q qochar对吧,看一下是不是就可以啊哎。
07:41
说明我们的这个没有问题哈,好,当然咱们这个例子举的不太好了,说明说明啥嘞,就是我这是不是有可能重复啊啊有可能重复,那没事儿,咱们呢,再来一个,嗯,再来一个案例啊,因为我们主要是看这个函数的创建对不对啊,再来一个案例,呃,比如说呢,我想去根据什么呢?呃,比方说我呢,去根据一个就是部门名,根据部门名返回我们该部门的平均工资,可以这样吗?啊,返回该部门的平均工资啊,或者说根据部门号来去返回也行啊,如果部门命名的话,是不是就用上了连接查询呀,就会就要复杂一丢丢了啊来咱们来写一下create function啊,MY f3啊,那么这个里面应该有个部门名,那就是。
08:41
第1t name对不对,We差,然后这就是28,嗯,然后returns还是double对不对,哎,Begin end,哎,好了,然后这个地方的话呢,我们要写的呢,就是呃,定义一个变量对不对,一会要去接受我用S可以吧,我用declare declare行不行,可以是不是都行啊啊那比方我再换一下用declare declare可以吧?啊这样你就都会了哈,那declare,比方说我们来一个Sao啊,局部变量不用加at对吧?哎,比方说double啊,我们加不加默认值其实都行,对不对啊,然后怎么写来着,Select avg salary into s l,好,然后再去用from,我们的los表,E inner Joy,我们的departments表。第二他们的关联条件,呃,第。
09:41
对吧?Department ID,然后等于我们D里边的department ID对吧?还有什么where吧,Where,我们D里面的department name等于第p name,哎,你看是不是又用上这个查询了呀?啊,分号别忘了结尾啊,最后我们再去repair s al对吧?哎,哪有问题啊,Group和BY还得是吧?哎,那我先连接上了,然后再group by group by是不是应该在这啊?嗯,Group by是吧?哎,这个还需要分组吗?这个需要分组吗?其实不需要了吧,对吧?这个需要吗?还是不是就是这个部门的平均工资啊,这个不需要加分组了吧,对吧?嗯。
10:41
行了,那这个就完了,然后我再去select那F3,哎,咱们随便给他一个部门名,都有什么部门啊,销售部it部看一下是不是这个是最关心的,好来看一下平均工资好多少啊,五千七百六美元对吧?美元应该是乘以六点多吧,乘以六点多是吧?啊,三万多是吧,就是折合成人民币是三万多是吧?嗯,行,是不是一下子有信心了,好吧,哎,这是咱们做了几道这个案例,没什么问题,对不对啊,嗯,首先怎么了?
我来说两句