PLSQL基础PPT课件_第1页
PLSQL基础PPT课件_第2页
PLSQL基础PPT课件_第3页
PLSQL基础PPT课件_第4页
PLSQL基础PPT课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PL/SQL程序设计,.,2,PL/SQL基础,SQL:StructuredQueryLanguagePL/SQL:ProceduralLanguage/SQL,.,3,PL/SQL实例,一个用PL/SQL编制的程序代码如下所示DECLARExmvarchar2(8):=张琼;zymvarchar2(10):=计算机;zxfnumber(2):=45;/*定义变量类型*/BEGINUPDATEXSSETzxf=zxfWHERExm=xm;/*更新学生表*/IFSQL%NOTFOUNDTHEN/*检查记录是否存在,如果不存在就插入记录*/INSERTINTOXS(XH,XM,ZYM,ZXF)VALUES(xs_sequence.NEXTVAL,xm,zym,zxf);ENDIF;END;,.,4,PL/SQL语句块,匿名语句块命名语句块1.标号语句块2.子程序(过程、函数)3.触发器,.,5,基本块结构,所有语句块都包含三个基本的部分:声明部分、执行部分和异常处理部分。只有执行部分是必需的,其他两个部分都是可选的。,.,6,基本块结构,DECLARE/*Declarativesectionishere*/BEGIN/*Executablesectionishere*/EXCEPTION/*Exceptionsectionishere*/END;,本语句块中使用的所有变量、游标和类型都放在声明部分。,语句块要完成的处理工作。,对执行过程中发生的错误进行处理。,.,7,DECLAREv_StudentIDNUMBER(5):=10000;v_FirstNameVARCHAR2(20);BEGIN-RetrievefirstnameofstudentwithID10,000SELECTfirst_nameINTOv_FirstNameFROMstudentsWHEREid=v_StudentID;EXCEPTIONWHENNO_DATA_FOUNDTHENINSERTINTOlog_table(info)VALUES(Student10,000doesnotexist!);END;/(匿名程序块到上面一行结束,/执行本程序块),.,8,标识符,标识符用来命名PL/SQL对象,例如变量、游标、类型和子程序。标识符由字母开头,后面可跟随字母、数字、货币符号、下划线和“#”字符。PL/SQL标识符的最大长度为30个字符,不区分大小写。但是适当地使用大小写可以提高程序的可读性。,.,9,运算符,Oracle提供了三类运算符:算术运算符、关系运算符和逻辑运算符。1.算术运算符算术运算符执行算术运算。算术运算符有:+(加)、-(减)、*(乘)、/(除)*(指数)和(连接)。其中(加)和(减)运算符也可用于对DATE(日期)数据类型的值进行运算。例:求学生的年龄。SELECT(SYSDATECSSJ)AS年龄FROMXS;其中:SYSDATE是当前系统时间,CSSJ是出生时间。,.,10,运算符,2.关系运算符关系运算符(又称比较运算符)有下面几种:(1)(等于)、或!=(不等于)、(大于)、=(大于等于)、=和=40ANDZXF45ANDZYM=计算机;(3)查询计算机系和通信工程系学生的基本情况。SELECTXH,XM,ZYM,ZXFFROMXSWHEREZYM=计算机ORZYM=通信工程;,.,13,其他符号,PL/SQL为支持编程,还使用其他一些符号。下表列出了部分符号,它们是最常用的,也是使用PL/SQL的所有用户都必须了解的。,.,14,字符型文字,字符型文字是由单引号界定的一个或多个字符,如123456、Fouryearsago.字符型文字可直接赋值给类型CHAR或VARCHAR2字符型文本中两个单引号表示一个单引号,如Mikesstring,.,15,数字型文本,数字型文本可以不经转换就直接赋值给NUMBER类型变量。如:123、-7、23.1、9.87E-3,.,16,布尔型文字,仅有三种可能的布尔型文字:TRUE、FALSE和NULL。这些取值可以被赋值给布尔型变量。布尔型文字表示条件的真或假,可以在IF和LOOP语句中使用。,.,17,注释,1.单行注释由两个连字符(-)开始。eg:v_Course;-Variabletoholdthecoursenumber2.多行注释由/*开头,由*/结尾。eg:v_Course;/*Variabletoholdthecoursenumber*/,.,18,变量声明,变量有名字及其数据类型两个属性。变量名用于标识该变量,变量的数据类型确定了该变量存放值的格式及允许的运算。声明语法variable_nametypeconstantnotnull:=value;DECLAREv_DescriptionVARCHAR2(50);v_NumberSeatsNUMBER:=45;v_CounterBINARY_INTEGER:=0;,.,19,变量声明,变量声明为NOTNULL的,必须要赋初始值。变量声明为CONSTANT的,必须要赋初始值。DECLAREv_TempVarNUMBERNOTNULL:=0;c_MiniStuIDCONSTANTNUMBER(5):=10000;,.,20,PL/SQL类型,1.数字系列NUMBER(P,S)P:数值中所有数字位的个数S:小数点右边的数字位的个数(NUMBER等价于DECIMAL、FLOAT、REAL)例如:num_fieldNUMBER(10,2);num_field是一个整数部分最多使8位,小数部分最多是2的变量。,.,21,PL/SQL类型,2.字符系列VARCHA2(L)(VARCHAR和STRING等价于VARCHAR2)例如:var_fieldVARCHAR(11):=Helloworld;,.,22,PL/SQL类型,3.日期/区间系列DATE存储世纪、年、月、日、小时、分和秒的信息。TIMESTAMP(P)可以存储秒字段的小数部分。,.,23,PL/SQL类型,4.布尔系列BOOLEAN其值为TRUE、FALSE和NULL之一。,.,24,PL/SQL类型,5.复合类型符合类型有记录、表和数组。6.引用类型引用类型只有一种:游标变量,.,25,PL/SQL类型,7.使用%TYPEDECLAREv_FirstNamestudents.first_name%TYPE;通过使用”%TYPE”,v_FirstName的变量类型声明为students表的first_name列的类型。使用%TYPE声明具有以下两个优点:不必知道XH列的确切的数据类型;如果改变了XH列的数据库定义,my_xh的数据类型在运行时会自动进行修改。,.,26,PL/SQL类型,8.%ROWTYPE可以使用%ROWTYPE属性声明描述表的行数据的记录,对于用户定义的记录,必须声明自己的域。记录包含唯一的命名域,具有不同的数据类型。DECLARETYPETimeRecISRECORD(HHnumber(2),MMnumber(2);TYPEMeetingTypISRECORD(Meeting_Datedate,Meeting_TimeTimeRec,Meeting_Addrvarchar2(20),Meeting_Purposevarchar2(50),.,27,变量的作用域,变量的作用域是指可以访问该变量的程序部分。对于PL/SQL变量来说,其作用域就是从变量的声明到语句块的结束。当变量超出了作用域时,PL/SQL解析程序就会自动释放该变量的存储空间。,.,28,对象类型,1、OEM定义2、命令定义语法格式:CREATEORREPLEACETYPEschema.type_nameAUTHIDCURRENT_USER|DEFINERASOBJECT(attribute1datatype,attribute2datatype,attributendatatypemethod1method2methodn,.,29,数据类型的转换,1.显示数据转换TO_CHAR(d,format)日期型-字符型TO_CHAR(num,format)数字型-字符型TO_DATE(string,format)字符型-日期型TO_NUMBER(string,format)字符型-数值型,.,30,数据类型的转换,2.隐式数据类型转换DECLAREv_CurrentCreditsVARCHAR2(5);BEGINSELECTcurrent_creditsINTOV_CurrentCreditsFROMstudentsWHEREid=10002;END;(current_credits字段是NUMBER(3)类型),.,31,数据类型的转换,2.隐式数据类型转换PL/SQL可以在下面的类型之间进行转换:字符和数字字符和日期尽管PL/SQL将在数据类型之间进行隐式转换,使用显示转换函数也是良好的程序设计风格。,.,32,表达式和运算符赋值,variable:=expression;变量名:=表达式;,DECLAREv_String1VARCHAR2(10);v_String2VARCHAR2(15);v_NumericNUMBER;BEGINv_String1:=Hello;v_String2:=v_String1;v_Numeric:=-12.4;END;,.,33,表达式示例,1.字符表达式|用于字符串连接Hello|World|!等于HelloWorld!,.,34,表达式,2.布尔表达式(45)OR(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论