欢迎来到天天文库
浏览记录
ID:59195358
大小:164.50 KB
页数:41页
时间:2020-09-26
《第10章 Oracle编程基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章Oracle编程PL/SQL基础教学目标1.了解PL/SQL。2.掌握PL/SQL中变量与常量的应用。3.熟悉PL/SQL程序块的创建。4.掌握IF和CASE条件语句的应用。5.掌握LOOP、WHILE和FOR循环语句的应用。6.掌握异常处理机制。7.了解常见的Oracle异常以及自定义异常。教学内容10.1PL/SQL简介10.1.1认识PL/SQL语言10.1.2PL/SQL编写规则10.1.1认识PL/SQL语言ProcedureLanguage/StructuredQueryLanguagePL/SQL是Oracle系统的核心语言,支持SQL的
2、所有数据操作,适用于所有Oracle对象类型。特点:模块化;采用过程性语言控制程序的结构;可以对错误进行处理,使程序不会被中断;较好的可移植性;集成在数据库中,调用更快捷。减少了网络的交互,有助于提高程序性能。10.1.2PL/SQL编写规则1.标识符命名规则以字符开始,长度不超过30个字符。可读性要求(建议):v_、c_、e_、_cursor。2.大小写规则(建议)大写格式:SQL关键字;PL/SQL关键字;数据类型;小写格式:标识符和参数;数据库对象和列。10.2PL/SQL的基本结构10.2.1数据类型10.2.2变量和常量10.2.3运算符10.2.4
3、注释10.2.1数据类型类型说明BOOLEAN布尔类型,它的取值是TRUE、FALSE或NULLSIGNTYPEBINARY_INTEGER的子类型,取值为-1、0或1BINARY_INTEGER带符号整数类型,取值范围是-231~231PLS_INTEGER同BINARY_INTEGER,溢出时自动指定NUMBER型,不出错SIMPLE_INTEGERBINARY_INTEGER的子类型,取值范围与BINARY_INTEGER相同,但是不可以为NULLRECORD一组其它类型组合REFCURSOR指向一个行集的指针10.2.2变量和常量先声明,后使用。var
4、_name[CONSTANT]datatype[DEFAULT
5、:=value];CONSTANT:常量的值须在定义时赋予。stuidCONSTANTINTEGERDEFAULT101;ClaidCONSTANTNUMBER(4):=1022;stunameVARCHAR2(6)DEFAULT'name';timeDATE;IsfinishedBOOLEANDEFAULTTRUE;10.2.3运算符关系运算符<>!=~=^=不等于一般运算符+-*/:=赋值号..范围运算符=>关系号
6、
7、字符连接符逻辑运算符ANDORNOTISNULL是空值BETWEEN介于两者
8、之间IN在一列值中间10.2.4注释单行注释:--comment多行注释:/*comment*/10.3控制语句10.3.1PL/SQL程序块块是PL/SQL的基本程序单元,分为无名块和命名块两种。命名块是指过程、函数、包和触发器等。[DECLARE…--定义部分]BEGIN…--执行部分[EXCEPTION…--异常处理部分]END;需要使用正斜杠(/)作为PL/SQL程序的结束。10.3.1PL/SQL程序块SQL>SETSERVEROUTPUTON;SQL>DECLAREv_numNUMBER;BEGINv_num:=1+2;DBMS_OUTPUT.PU
9、T_LINE(‘1+2=’
10、
11、v_num);EXCEPTIONWHENOTHERETHENDBMS_OUTPUT.PUT_LINE(‘出现异常’);END;/DBMS_OUTPUT是系统包,PUT_LINE包内过程,需要将SQLPlus的环境变量serveroutput设置为on。10.3.2IF语句1.简单条件选择;2.多条件选择。IFconditionTHENstatements1;ELSEstatements2;ENDIF;IFcondition1THENstatements1ELSIFcondition2THENstatements2…ELSEstat
12、ementsn+1ENDIF;10.3.2IF语句例10-6:使用IF-ELSE统计表emp中部门编号为30的员工人数。SQL>DECLAREv_countNUMBER(4);BEGINSELECTcount(*)INTOv_countFROMempWHEREdeptno=30;IFv_count>0THENDBMS_OUTPUT.PUT_LINE('部门编号为30的员工人数:'
13、
14、v_count
15、
16、'人');ELSEDBMS_OUTPUT.PUT_LINE('不存在部门编号为30的员工信息');ENDIF;END;/10.3.3CASE语句1.简单CASE语
17、句CASEsearch_express
此文档下载收益归作者所有