00:01
好,咱们刚才呢,其实已经把这个功能给大家写过了啊。就是包含员工表的这三字段,然后提取三行数据,刚才的案例是不是写的就是这个呀?往后看啊。好好看。嗯,然后咱们接下一个问题,就是在游标操作中常用的属性有哪些?第一个。学过了吧?OK,然后紧跟着咱们要解释解释这个found和not found他俩怎么搞?这两个想把他俩搞明白啊,你必须得来看咱们刚才这个案例中。刚才这个案例中。咱们在这个控制循环几个的时候,这块是不是使用的具体的常量值啊。那也就是说我想输出25个员工的话,那这块是不是得写25啊。对吧。那假设我这个表里边儿,我这个表里边儿的员工经常的变化,今天入职了八个,明天走了三个。
01:06
你这个值是不是得随时随地更改?不好办。不好办。那咱们接下来就写一种方式,让他可以循环所有的所有的员工,好吧。哎,打印所有员工。这么高?Declare。Begin end。在写了啊,第一步声明游标。这回咱写个啥呢?咱这有没有案例啊?哎,没有啊。没有想象一下啊。比如说写一个。呃,这个这个这个。写个多表的吧,刚才是不是单表的。咱就写一下这个部门名称和所在区域。怎么查询?The like from所有的部门啊部门是吧?
02:01
和。我去。Region,条件是。起个表名。OK。D的。部门的。区域。下边有这提示哈,徐ID。等于。去表达。什么?就是ID是吧,来执行一下。看。什么毛病啊,一共是不是12个部门啊,OK。哎。来了。接下来我要把这个结果集12个嘛,我要把它放在油表里了,就是用一个数组来储存。前面怎么写呢?Co or来一个,比如说就叫标,它是什么东西?对吧。分号,别忘了结束。然后呢,还要定义出游标的每一个元素的那个对象。
03:03
比如说咱们这个就叫还是叫YB吧。它是游标的类型。Roll。或者这个呢,咱就叫。叫什么名呢?对象是吧,Object。Object的啊。这叫OAO吧?行吧,这叫O了对象吗?好了,然后呢,在这里边儿,咱们这里边儿都有了,接下来干嘛了。首先得开游标啊。我谁?Open标对吧,然后是不是开始循环了。我这里边用一个简单的循环按的路口。OK。然后呢,在这里边循环,首先是不是。干嘛呢,这一步了。将游标中的每一个值给这个对象啊。
04:01
OK,那怎么办呢,Fetch。Fetch标into给咱们的O对象。O对象好吧,然后呢,咱们就开始输出。输出。呃,前边弄点啥呢,几个字啊,叫做。咱输出啥嘞。部门。部门编号。行吧。然后它这块连接的那就是。部门的编号。O的什么ID是吧?然后再连接。呃,部门名称。O点内。
05:00
然后再连接。所在区域是吧。负责区域。哦啥呀。还是那吗?这个叫什么内杠一是吧。怎么写?咱咱先整着啊,你看是不是啊。好,那这样的话呢,还是没有控制,你看它这块循环,这个循环。然后呢,把其中的某第一个元素给了这个,给了这个O对象,然后输出第一个部门下一次。他这个O变过吗。就是变了啊,但是不知道什么时候停,不知道什么时候停。什么时候才停啊?你看啊。这个就相当于咱们这个数组,看好我这个鼠标这个箭头啊,首先第一次循环搞到它了是吧,下一次循环是不是搞到它了。
06:00
然后以此类推吧,什么时候我这个箭头停止啊,就不往下走了。那么也就是说到最后一行没问题,输出再来下一次的时候,也就是说我这个箭头指向的是一个空值,是不是就不走了。I。好了,那这个时候就用到了这两个属性的其中的一个not found。判断游标是否取得了数据,呃,取到数据返回假,否则返回真。就是有没有值位not的放的是不是卷的,就是没有找到值啊。我可以这么去做啊。控制循环什么时候停止在这儿什么时候停止呢?退出。当。当。之前是不是I等于一的时候退出啊,现在这个条件变成了当游标。没有数据被找到的时候。则退出。游标中没有数据啦,退出。
07:05
OK。这样就搞定了。好,执行一下看效果。DBMS。灯重新开一下。实行。好。什么问题?是不是就是列名重复的问题啊,就是说这个查询语句啊。对吧,这个查询语句有内幕有name幕,有ID有ID是吧,你别看他这个这个叫内,这个叫NAME1ID1,这它自动给你编的,真实不存在啊,所以呢,你想这块呢,就不能用星了,你想查什么,下边是不是有啊,你这块给它起名啊。查询ID。什么的ID啊,是不是部门ID啊,所以是部门的。D的IDOK。
08:01
然后逗号隔开,接下来是部门的名称吧,D的name,然后是区域的名称R的name。这没问题吧?但是这么写也不行,你这么写的话,你想啊,我现在要引这个部门名,你看下边这块应该怎么写。那就写成o.D点内么。不行吧,记住了,这样引用的方式必须得起别名,刚才报错的时候说了吧,是不是得具有别名啊?就叫第。这个叫。D。这个叫。R name OK,下边就能用了,那么这个是部门对象,部门对象被起成什么名了,是不是did啊?哎,然后这个是didna和r name。好,写完了走你。好,没问题啊。这个销售销售这块应该逗号隔开是吧。
09:03
行吧。一共多少条数据?12条没问题吧?啊,这个事例呢,其实给大家演示了两个问题啊,一、在多表查询中重复的列怎么办?写上点注释。在。多表查询中。如果出现。多列虫名。重名。使用。起。使用列别名的方式。哎,得给这个给这个列啊,起别名起别名。啊,这是第一个问题啊,第一个问题,第二个问题就是什么时候退出了。哎,不需要用常量控制,不需要常量控制。OK。
10:01
这就是咱们的第二段,也就是给大家演示了这个东西。Not fo啊,Not found,在这个使用not found和found的时候。游标必须是打开的。啥意思,我这一块。必须open。写上关键的都得写上啊。啊,使用。Fo或。Not。放属性。游标必须。打开。就是这个。然后呢,第二个是并且在调用此属性的游标必须经过下移的,否则获取结果为空,这个否必须经过下移是什么意思呢?这是不是过下雨啊?哎,必须有这句话,你这句话如果没有的话啊,使用。必须。呃,游标。
11:01
必须要下移。下一。否则,否则哪样?死循环是吧。注意的点呢,我就给大家演示到这儿了。转过来吧。写完的代码粘过来是吧。第二段。第二段说写的什么问题,就是。放和。Not fo属性。那刚才咱演示的是不是not放的来,你看那放的啥意思。有数据是吧,哎,有数据,那好,那这个有数据咱们咋办呢。怎么应用一下呢。看我的啊,我把刚才的程序给大家简单的改造一下就可以了啊。呃,退回来。退回来怎么应用一下呢。就是有值的时候进来,那肯定是外部循环啊。
12:00
用外部循环吧,看了啊。呃,我那我这样啊,我把这个。这里边儿的东西上交好吧,这个输出我留下好吧,首先咱们又还原了吧。哎,开游标,接下来我要干嘛,看好了啊。首先游标必须要下移,对吧?标音给谁?O。然后循环才能开始。当游标中。有数据放的则进入循环体。没问题吧?是这意思啊。哎,当游标有数据,就是下一行还有值呢,则进入循环。进入循环。那进入循环之后就完了吗?你看这个啥意思。
13:00
游标下移吧。哎,你看这儿啊,再看这回来不是这这呢。游标下移这句话我是不是应该放在循环的里边啊?因为每一次循环一次,我就要挪动一次,循环一次要挪动一次是吧,而再看我现在写的这个程序。我这个循环里边有下移吗?没有吧,是不是应该把下移这句话放在循环里边啊,哎,咱们在输出完成游标下移。那有同学说,那你这个放外边,这句话为什么还要写一遍啊,你都放里边就完了呗,为什么来对吧。哎,必须要经过下移才能用那个放和not放的这个属性啊,所以你看这个PPT写了。调用此属性时,游标必须经过下移的,也就是说咱们在调用放属性时,游标必须先下移一次,我才能用放的OK。
14:02
然后进入循环里边之后,这个下移的话,就是为了循环而下移了是吧。所以这里边儿必须有两次,OK。好了,嗯,这个呢,咱们也执行一遍。这什么鬼呀,灯都没有啊。不是切换的事儿啊,是我这个,你看我连播放都播放不了,因为没有登录啊。登录一下。好了吧。不愿重新创建。开灯。一全选执行。好,是不是也没问题啊,12个部门。OK吧,这是放的一个应用。
我来说两句