00:00
这这是这是整个circleq这一块哈,然后PLSQL。这个word版的,这是这个PDF版的,看这个,这是一个编程语言啊,这是我七月份下的,这叫t be啊,是一个比较权威的一个国外的一个验证语言的排行榜,我们第一天学Java时候也看过啊,每当学Java的人一看这个榜就感觉心里边还挺爽是吧,自己排的排的挺靠前,这辈子考试从来没靠前过,学这个编程语言,编程语言靠前的是吧。嗯,然后,但不意味你靠前的工资就一定是最高的是吧,这不是工资的排行榜是吧?嗯,你像这个这个,呃,CCC跟Java就不用说了,他俩很靠前,然后你往后找找找找找这。这个PL circlel是吧?哎,它是一个编程语言啊,像这Oracle的一些组件也可以使用这个PL circle去写。
01:02
这是一个什么情况?然后还有其他一些,你这都可以看看啊,鲁比朱比应该是日本人写的一个,嗯,行PL circle打开看,我们把这个里边这东西需要学一学,因为后边有这个叫存储过程,哎,存储函数触发器,这个我们讲到你讲哈们那讲框架的时候,需要能自己写一个存储过程,嗯,或者叫触发器。嗯,那么前面有哪些,我们就这样走一走哈。这呢,实际上是一本小书了哈,59页,比较经简版的PL circle,我们不能像讲Java一样讲上这个,光讲Java基础讲了就一个月的时间了哈,PL收购呢?讲一天讲一天就讲完了啊。
02:00
从前往后,我们走一走,就是结合着这个练习题。我们给他学习一下啊。哎,看着它放那说PL circle是一门高级数据库程序设计语言,然后呢,专门用在各种环境下对Oracle数据库进行了访问。嗯,然后呢,嗯,它集成与数据库服务器中,它的代码也可以对数数据进行快速高效的处理,了解一下就行啊。然后它的全称叫procedure language,嗯,或者是叫structure query language,这就是结构化查询语言,就circle,就是过程语言啊。它呢是对SQL语言存储过程语言的一个。扩展它里边可以定义函数。嗯,定义函数,然后呢,Circle,我们当时讲那个这个叫叫什么流程控制的时候,Circle就光说了一个条件是吧,什么case when then when then else。
03:01
还讲那个抵扣的。记得吧,讲条件啊,哎,PLC作为一个编程语言了,它就比较全了,就跟Java一样,可以有条件判断,也可以有循环。它这里边就有循环了啊,当然它其实作为一个语言,也,你像Java里边可以定义方法,它这里边儿嗯,也可以定义,只不过叫函数了。嗯,可以定义函数,这个函数呢,你要存储函数。啊,还可以进行存储过程啊,一个有返回值,一个没有返回值啊,它可以进行触发器这样的东西,它可以用来,诶被就是你定义好以后啊,它就可以用来被对真真实存在了,你就可以再来用它。嗯,这个需要用到了你就调它,那个需要用的你就来调它。就像你一个类一样啊,Java里边我们创建好一个类,这个类就存在了,哎,你想调的时候,你就过来调就行,嗯。它是一个面向过程的语言。嗯,这我们就直接往后过哈,PL circle是Oracle系统的核心语言,现在它的很多组件呢,也是用PL circle来写的。
04:07
嗯,查询的时候说效率更高一些嘛。诶,这个PL搜QL里边可以使用的SQL里边的关键字或叫语句增删改查,哎,然后后边这属于DCL的是吧,提交啊回滚啊,设置这个保存点啊。增删改查里要注意这个select跟circle里边不一样。前面都一样啊,这个叫select什么什么into到一个变量里,或者叫呃,度到一个,比如我们讲那个记录类型里,哎等等哈,我存入到一个,嗯,那个叫哎。游标的一个对象,嗯,增到一个游标里啊,这叫select,什么什么into多了一个他。往后走。这是介绍就说完了啊,然后PLO块的结构和组成元素,它有哪几部分构成?说有三个块构成,叫声明部分,执行部分,异常处理部分。
05:09
三块对应的有四个关键字,那四个关键字把它分成隔成三块嘛。叫declare,叫声明部分,哎,你在整个这个执行过程当中需要用到哪些变量,哎,除了变量之外还可以,比如说有记录类型,你现在不知道,你就先听一听啊,还可以有游标,哎这些东西啊,你都给它定义在这个declare里边。就有点类似于我们Java里边的那个成现变量一样哈,成现变量你不都是直接一个类完了以后直接就开始写A变量,这个你相当于把这变量写在这儿,Begin呢,就是真正你开始执行的这个部分,哎,可能需要用到你上面声明的这些变量。哎,有点类似于我们Java里边那个内方法里,May方法里不就是程序的入口开始执行吗?它这呢就是从底定这开始执行。
06:01
嗯,然后Java程序里边也有异常,嗯,他这儿也有异常。哎,针对出现异常如何处理,它单纯加了一块叫exception,如果你在这个begin这个里边去执行的时候,出现异常了,根据你这个异常也有一个对象啊,根据那个对象的类型。然后到我这去匹配。啊,他用的是when来匹配啊,When当时这个异常对象的时候,Then怎么去处理啊,When什么对象,Then怎么处理啊,我们Java当中用的是叫try catch是吧,TRY那段代码。哎,你有异常对象catch的时候,把你那个对象看是哪个类型的放过来,然后在catch那个大括号里边处理。嗯,就是形式不太一样,但这个方式是类似的啊,笨。表明你这个快结束了。哎,那我们先来写一个最简单的一个PL的一个程序啊,最简单的不就是hello word。
07:01
对吧。在这写哈,诶在这个PL搜狗这块,当然你要使用的话,哎,首先你要进行一个这样的一个操作,这个是必须的啊叫set server out put on,没有分号回车。哎,你要不每次你要是不写这个这个这个命令的时候,你就运行完了以后,没有输出结果啊。得加上他。然后我们写一个最简单的一个PL的一个程序,叫hello word,它说有三部分,Begin,哎,不是不是declare,嗯,Begin,还有这个叫exception跟end end在这要加上分号。嗯,最简单的一个,Hello word这里边涉及到叫声明的变量,或者叫类型,或者叫这个游标,那都放在这儿啊,一定呢,是你程序真正的执行部分,类似于扎va里的那方法,就这意思,然后exception针对于begin出现的这个异常如何处理来提供处理的机制来放在这儿,然后最后表示结束。
08:44
哎,这个处理机制它使用的叫呃,问什么什么,然后then怎么处理啊,你也可以再加上一个再问,是这样的话,就这样处理。就我们讲的那个异常的时候,后边会有就说啊,你要写最简单一个hello word的话。
09:02
是不是不用定义变量啊?哎,没有什么变量,那就直接比begin了,比begin就直接一条语句输出是吧?这不是相当于没方法吗?就在这里写输出语句,Java里用的是system.out.print。哎,那这里边谁相当于刚才说的这句话呀,像这个对DBMS_foot.foot啊下划线那。一个小括号,然后分号结束,打印的是叫hello word,一个字符串。然后没有异常,没有异常就不写了,按的结束。就这样哈,这就是最简单的一个程序。嗯。
10:00
他这个大家注定。Hello word对吧,因为你这里边写了这个CE,但没有处理,那也就是说像这个没有用的,如果这个成绩里边就是没有异常啊,他就给他住了,然后这个也没有声明,他也就不要了,现在。哎,那我这个程序实际上就三行啊,这三行是最简洁的方式的,再少也少不了了。begin是你这个程序的入口,相当于这必须要有N的表明这个程序结束。那最简单的不就一条,这是最简洁的一个程序吗?给你保存一下。哎,格式就这样了,所以保存完以后,我这个删了就长这样。是最简洁的一个程序。Hello啊。嗯,那我们写一个比他复杂一点的,复杂一点的复杂到什么程度,我查询一下,比如说是100号员工的工资。
11:07
他是100号员工的工资的话,我们用思后语言的话就是嗯,Salary from employees where ID等于100,是这样是吧?用话怎么写?我这样写哈,Declare。先把这个结构写出来,因为没有一场N的结束,我声明一个变量。我先写,然后再注释啊,声明的变量,变量呢,我们后边这会讲到啊,往往后拉的话,变量如何声明。哎,如果是一个变量的话,用V开头表明是个变量,常量呢用C,如果异常的话,开头用个E,用下划线怎么怎么来指示出来。
12:04
哎,是个技术类型,后边加个后边下划线加record record,这叫科色啊,就跟我们讲写一个那个。什么这个主键一样是吧,主键啊,或者这个外键啊,我们都是用下划线,后面指明一下这个意思啊,增强它的可读性,这呢我定义的是个变量,所以我就V,呃是一个,哎,公司相关的啊,然后这个变量的数据类型,哎,我差TWO20个来存分号结束。啊,这是这个变量,我声明了,声明以后我在这个begin这来操作,本质本质上操作还是用的select语句,其实我们刚才说的是select,什么into是吧,哎,我select salary into。VC from哪个表,Employ表,Where等于100,哎,这个时候加个分号啊。
13:07
这个呢,我光给他写select放到这里边了,我想得打印出来,哎拉,把这个VC给它打印出来。打印完以后就摁的。哎,还是两万四是吧,哎,这里说一下,这呢,我们在这相当于1DECLARE呢,你就把它理解成声明,类似于Java里边出现变量的位置,我可以在这声明变量,哎,然后呢,这是一个circleq的一个操作,哎,这里面实现的是这个select的一个操作,叫select,哎,什么什么什么,然后into什么什么什么,然后如果有表的话,就是from哪个哪个表,如果要有条件的话,你再加上一个where什么到。
14:07
哎,放到这个变量里,然后呢,打印,嗯,最后结束。这是一个最标准的一个一个程序哈,那现在我们说了,我不光想输出100号员工的工资,我还想输出他的。输入他的什么呀,输入他的这个叫email。还想输入他的email,甚至说包括hard呀,什么phone number啊,都想输出,那你这电量就多定义几个。嗯,还有一个叫嗯,Email,这要需要注意的是哈,诶好,我我这写的不太好啊,Salary是个number类型的是吧,这我给它放到一个what里面,最好这数据类型跟它是一致的。20个就是两个小数。
15:01
十个也行啊,Email呢,你是要把那个本来这个表里边email放到这里,Email是个what的,所以这叫what two是20个。而且你这个数啊。不能比你这个这个对你这个里边这个表里,那因为有那个小小的时候,有时候就放不进去了。可以再声明一个为啊,L date是一个date类型的分号啊,我每一个都是分号结束的哈,She select在这写明,按照这个顺序填进去哈。Select叫salary。嗯,Email into,嗯,V-V-emailv杠二。
16:01
从这个表当中where到这where这个,然后打印的时候,打印他的工资,也打印一下他的这个email,再打印一下他的他的对。还是打印?看一下结果。这就这样。啊,就这个意思啊,相较于刚才那个,我这定义了三个变量,用三个变量分别给它,让它这里需要对应,这里第一个对着的就是你看就是这的第一个啊,第二个这个就是这个。类型要对应。嗯,然后你这个储值范围要注意,比如说这个VGA email,你要给它整成一个二的话,存不进去了是吧。说字符串缓冲区太小了,就这意思,所以说你这里声明这个类型,这个大小是不能够小于。
17:06
嗯,不能够小于人家本身这个的是吧,Email你要存的是这里边儿的email这个数据类型的那个大小。哎,你这个不能比它小啊。哎,这是这个哈,这个完了以后。嗯,我们就刚才说了,说你这个数据类型,嗯,啊先说啥,先说啊说这个吧,这是一个数据类型。然后呢,你这样来写的,哎,说你这个不能比大小,而且数据类型也一样,那我干脆呢,我不是声明成他了。那我给它改了,改成,哎,你不是要放这个employees这个表吗?哎,而且是要把里边的salary放到这里是吧?那你这个salary的数据类型我就放在这儿使用的这样一个形式哈,这个表明就是V-sal这个变量的数据类型跟employees表下的salary的数据类型是一样的。
18:09
这呢相当于动态的来获取一下salary的数据类型,当这个数据类型有所变化的时候,我这也跟着改变。哎,那同样的下边这几个我也可以给他处理了。N加一六加根号大。嗯,然后这。哎,这个对的,其实上你可以不写了,因为都一样是吧。哎,是不是动态的获取一下这个表对应的三个变量的数据类型,然后呢,这不变还是这样去复制完了,然后打印。那不照样就出来了是吧。
19:00
嗯,这就讲了这个内容啊,刚才说了让讲了好几个知识点。捋一下啊。
我来说两句