00:00
段内容叫游标的使用,游标,以前没听过这个名,哎,什么是游标?它的作用是什么?如何来声明,怎么来使用?嗯,主要就是你掌握它,呃干嘛的是吧,怎么用啊往这儿看。U标,哎,在PL色后程序当中,对于处理多行的记录的事误,哎,经常使用游标来实现处理多行的,嗯,我们刚才写这个程序。刚才这么多,嗯,你往上你像这样还是吧,打印80号部门,这里边儿涉及到很多人了,我们考虑说使用游标,用于处理多行记录,你看上边我们用的时候,哎,实际上都没有用着这个概念,就是一打都是打的某一个人的。嗯,某个人的什么什么情况,当时呢,如果变量多的话,我们造成的技术类型来存储你这几个变量,然后分别给它打印,但也是一行,相当于只是一条数据,如果你要是想处理多条数据的话,就要使用到这个叫U标的这样一个概念啊。
01:05
游标是一个指向上下文的一个句柄或者指针。有点像我们的那个啊,哎,然后呢,哎,显示的游标,那就说明对应的还有个叫影视的啊,显示的游标处理四个,呃,需要需要处理需要四个PR色库,这个步骤对应的这个蓝色的第一步叫定义一个游标。叫cur什么什么什么is怎么怎么着,哎,就是基于,因为它是一个指向一个表嘛,你可以这样理解啊,然后那个表它有个指针,然后意思呢,给你往下往下往下往下肯定是select一个东西。啊,这是一个,这是给它定义好了,定义好以后我就打开这个游标。打开邮标就是open标了。程重个。然后提取游标的数据。嗯,像Java里边我们用的是那个,比如eer EEr.next返回一下这个U标对应的数据。
02:06
呃,然后每奈一下输出这值了以后,它还自动的给你啊,它它它就自动再给你往下移一为是吧,那就是先以为后来再输出的哈,那个ter的那个next方法。哎,提取邮标你用的是fetch,哎,这个游标的名into放在一个变量里,或者你放在一个记录类型里,你看这这个变量,这个记录类型都可以啊,最后游标还需要关闭。啊,这是对油表使用的一个四个步骤啊,然后怎么怎么着不能有into了,下面就使用了,我们以这个例子来说明一下。打印80号部门的员工的工资,80号部门因为涉及到多个人,所以要使用邮标,如果只打印一个人,你就用上边儿的那个,直接定一个变量就行。来操作这个。Declare,然后begin,最后一个end结束啊,打印80号部门的工资,格式是这样子的,Salary,谁谁谁,这个呢,肯定是我定一个变量,然后把这个工资给它放到这个变量里,对吧。
03:20
哎,那我先定一个哈,用we salary是employ,这个表里的salary跟他的是一样的type,哎,然后下边我们要使用邮标了啊,因为这多个人首先要定义一个游标。哎,定义个标,Cursor啊,Cursor起个名,哎,这个我们使用的是EP这个表里的salary cur is。嗯,Elected salary from employees where,他ID等于80,把80号部门的这个哎,员工的这个salary,诶给它定义成一个游标,那这个就写完了哈,经营游标第二步要打开游标,打开就是open。
04:20
把它打开,那第三步叫提取油标,嗯,咋了,你啥时候上厕所开始给我请示了,是不是可以不让啊,Fight啊。Fetch要获取这个邮标,嗯,看看这个格式叫fetch什么什么into什么什么是吧?诶因为你这个邮标里边只记录一下salary,我就fetch一下CTRLC,把它透到一个变量里面,就C里。
05:03
哎,下到这里边,哎这个时候因为你这里边是有多条记录的,那就肯定是会有多个值,怎么来表示这个多个值,这里边我们要用到一个循环while,哎,While什么while,你这个游标的这个变量,它百分号叫放的,哎那就相当于在这里边儿有介绍啊,就是一旦你这个游标相当于判断它是否还有值,有点像我们那个deter里边叫has next是吧,判断它的下一个还有没有值,这个用的放就判断它本身这个时候还有没有值,如果有值的话,就执行这样一个循环。哎,循环执行的结果是把他的工资给他输出出来,打印一下salary冒号。Me,打印这个对吧,打印这个,然后直到你没有,你就哎这个还忘了个啥,你这取完一次之后,Y循环得有个迭代条件是吧,迭代条件取完这一次,那你得再取一次,就取下一次嘛,再取一次,然后这个再取再取知道没有了,And lo。
06:23
结束。哎,那这个时候打印的效果,就把80号部门的,哎,所有人的工资打印出来了。哎,这肯定是80号部门的吧,哎,这个感觉不太理想,那你就再加上一个ID呗,关我工资是吧,没有人是谁,哎,先捋一下这个啊把这个哎忘了那个啥了,关吧,关闭有表用的就是close。哇,这个时候这是一个完整的一个,诶使用了游标的一个代码啊。
07:01
定义一个邮票。哎,定一个邮标,然后它有四部啊,然后打开,然后取取到哪儿,你要是就select的一个东西,那你相应的就还得定一个变量,然后把这个select的这个东西放到这个变量里,然后哎,这个变量我的处理方式仅仅是输出了一下。哎,在这个提取油标的这个时候,因为它是多条记录,需要我们使用一个循环的结构,依次给它取出来,直到它没有,所以用的是叫百分号放的,判断它是否还有值。然后最后呢,给他关闭下流标就行,那如果我现在想给你看看是谁的工资是多少。那你相应的你还得定一个变量叫B-employ e ID吧,然后select salary employ e from这个看这个,然后such,它into,它逗号V啊。
08:12
EPID放到这两个变量里,然后打印一下。ID。就这样呗,嗯,然后再取,再取的时候还得是取两个变量。然后再关,哎,这就是谁,它的工资是多少啊,你要是用那个管用词后语句的话,我们说这个很简单是吧,有step employeeid什么,这个salary from,诶,Employees,然后where,其他的那个ID等于。
09:07
80啊,这是我们用S口语去写,你要是想这个操作用TLSQ写的话,就要使用U标。呃,然后呢,分别定义两个变量来存你刚才查询到的这两个值,然后把你存的这两个,把这个变量每次给它打印出来。里边还得用到循环,嗯,啊,这就是这就是这个这个例子哈,然后呢,如果我要是再想除了打印employee ID跟salary之外,还想打印。什么这个her data email,呃,什么这个department ID,这变量是不是又很多了呀,一多的时候用什么呀?哎,对,用一个记录类型,那我们现在就使用一个记录类型,我在这个上面改哈,声明一个记录类型check,诶叫演技record is record card,然后一个小括号给它括起来,这个完了,是个分号结束。
10:17
这里边儿把它俩扔进来。比如说V,你也可以再加上一个变量,这这都行啊。这个用逗号和开,这声明一个记录类型,然后声明一个记录类型的变量,哎,记物类型变量me e。Record d,哎,Record这个类型的一个变量,然后定义游标这个该有的,还有打开油标提取,油标提取的时候不是into到这里啊啊,而是into到这个机类型的变量里,对吧。
11:07
诶放在变量里,然后这个的时候,因为你这里取,你看你这里取的时候是先取的salary,后取的ID,所以它放的时候是先放它后放它,那你这儿定义这个的时候,也要先定义salary,再定义ID,它会给你依次的按照从前往后的顺序去取啊,格式对应。嗯,打印这个呢,就是打印它的这个机类型变量的这样里边的一个点。对吧。嗯,然后你再去取,再取into到这个肌肉类型的变量里。能理解不?哎,然后最后关闭U标,哎,还是这样一个效果,所以你要想增加变量,只需要在这儿加就行了,一杠car data,一四甲二等。
12:10
这个上面有个逗号。对的,小写的,然后salary逗号。Wait。嗯,这这不用改了都,然后你就它还是它。打印一下就完了。就是这个记录类型变量的。点。这个这个变量。
13:06
这个哈,对记术类型变量的这样一个还。没有没有。嗯,这就三个量,再加你就可以再加,嗯,这就相当于我们把U标跟那个技术类型结合起来了,它俩作用不一样嘛,是吧?一个是用于存储多个变量的,这个叫聚微型,一个呢是用于输出多行记录的,叫游标。嗯,这是这样一个概念啊,游标对应的有四部。就这服务。嗯,我们看这个这个课件啊,往后走走,哎,Fetch into啊into不要丢了。电邮标这都是例子,然后摆号found for类型的,哎,判断你这个里边儿是否还有记录,哎,那有found有对应的就not found啊,是不是已经被打开了等等的这个啊使用这个比较多,这个呢,一会儿我们有个练练习啊。
14:06
哎,游标的for循环,这个你要注意哎,我们刚才使用的是用while循环来实现的while你这个,哎,这个游标的这个变量啊,然后呢,哎,它是否是放着的,当时我们对应有四步这个for循环啊,它就能够把刚才我们讲这个四步给它减省,减省这里我们说的是这样四步。1234WHILE循环这样来用,使用for的时候可以简写,你看。PL语言还PR还提供了游标for循环语句,自动的执行,自动的就能够执行open such close。和循环语句的功能。哎,当进入循环的时候,游标for循环会自动的打开游标,然后并提取第一行记录,当程序处理完当前所提取的数据而进入下一次循环时,这个游标的for循环也会自动的获取下一行的。
15:04
来程序来处理,当提取完结果集中的所有数据的时候,结束并自动的关闭。For什么什么in,那相当于我这个程序里边儿就正常还是有这样四步的啊。四加。这个我们保存一下吧。这四步还是有的,只是说使用for循环的时候,还有这三步都说可以自动的来做这些事儿了,能自动的做,那我们现在把它给改成一个使用for循环的。哎,使用for循环,同样实现我们刚才说的这个事儿,这个怎么来做,它能够自动的打开,我就直接for了,For给定一个局部变量。
16:00
是吧,这个局部变量我就定义成一个C吧,In。In就是in的这个。哎,这个这个这个油标的一个变量哈,然后lo lo loop完了以后,然后你这个想干什么。想打印这个东西。C。社会。嗯,先打印这个,然后打印完了以后,这个呢,有自动取,它是不是也会自动去取是吧,然后直到你这个结束,到end look结束,结束完了关也不用关了,然后再end。还是没没保存上。嗯,那个咋没出来。
17:13
后边这个没有啊,这个写错了啊,这个得改一改,我现在是不是我like的这个to这个是吧,那你这个呢,就是打印C的。嗯,C的上面实际上我们也可以。你看它这里有,我就从C里边去去找就完了。C。嗯。先这样操作啊,这不用它的C,这是一个局,相当于那个for它嘛,它这相当于是一个局部变量一样,大碗里的哈。这个不对,那就是C的。
18:01
Salary。这样对是吧,就是它这个是不是科色,声明的是一个还是一个科色啊,从这三个里边选,然后这个C是一个局物变量,就可以解成,它是从这个油标里边开始。来走的哈,执行完一次这个游标往下移一次,这个游标本身来讲还是指向了employees里的这三个字段,然后呢,我就现在执行一次,就打印这个C对应的这个salary字段。Employ。嗯,这个就不用了是吧,所以说这个说明个机类型这个就不要了吧,哎,我就定一个游标就可以了。然后直接这样打印前面的这个,嗯,因为你看刚才我们提取目标的时候,是把它放到这个记录类型里,刚才这个都已经给删了,所以你这当然刚才写那个就不合适了,对吧。
19:06
这是这种方式简洁很多,简洁就意味着你这个理解上可能要难一点。本身它也是有这样四步的,只是说后三步使用for循环都给解决了。那这就是使用游标的概念哈,然后你看后边还有。就刚才我们的这个啊。啊,这个就大同小异了。打印出。Manager ID为100的员工的这个这个这个信息。使用游标和记术类型,这个我们就不写了啊,类似的啊,你就看一下这个题啊。使用一个游标和技术类型,因为这里边儿它声明了三个变量,感觉呢有点不爽了,不爽了我就可以把他们三个里边放到一个技术类型里,这样来声明。这没问题,然后生命的技术类型对应的,你要定一个技术类型的变量。
20:02
然后呢,用于把游标的这个对应的这个变量给它放到那个into的这个哎记术类型里啊,然后声明一个游标,它选择了employees表里的这三个信息ID是他的这个条件的,然后打开邮标。提取油标,把这个标放到技术类型的变量里。然后循环。哎,当一旦这个游标能够找到值的时候,返回处执行,把相应的这个记录类型的这几个属性给它打出来,然后再取,这个一定不要忘了啊,这你要不取的话成雌循环了。再取,然后接着关闭。嗯,如果要使用for循环就简单了,For循环,嗯,肌肤类型也没了。省了就啊,我直接就指向你对应的那个表就完了。生明一个科就选的employs表里边儿的这三列直接一个for循环,这是一个你可以理解成一个局部变量in。
21:02
对应的这个色他。然后录回来执行,然后直接打印它这个变量的对应到employees表里的last。没有再定义技术类型啊。跟我们刚才写的实际上是大同小异的。这有个这个题。这样不讲这个题我们放下午写。
我来说两句