收藏 分销(赏)

Oracle SQL&PLSQL课件:第19章 复合数据类型.ppt

上传人:可**** 文档编号:10290094 上传时间:2025-05-16 格式:PPT 页数:21 大小:206.50KB
下载 相关 举报
Oracle SQL&PLSQL课件:第19章 复合数据类型.ppt_第1页
第1页 / 共21页
Oracle SQL&PLSQL课件:第19章 复合数据类型.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle SQL&PL/SQL,第,19,章 复合数据类型,掌握如何创建,PL/SQL,记录,掌握如何创建索引表,本章要点,复合数据类型,类型:,PL/SQL,记录,PL/SQL,表,内部有组件,可重复使用,PL/SQL,记录,含有若干个标量组件,,RECORD,或,PL/SQL,表类型称为信息组,其结构类似于第三代语言中的记录,不同于数据库表中的行,把字段的集合当作一个整体的逻辑单元,在数据处理时易于从表中取出行数据,PL/SQL,记录,记录具有以下特点:,每个记录内都可以有许多字段。,可以为记录赋初值,同时可用,NOT NULL,来限,定记录,无初始值的字段定义为,NULL,在定义字段时也可以使用保留字,DEFAULT,可以在任意一个块、子程序或包的声明部分定,义,RECORD,类型并声明用户自定义的记录,可以声明并引用嵌套的记录,一个记录可以是,其他记录的组件,创建一个,PL/SQL,记录,语法,其中,field_declaration,TYPE type_name IS RECORD,(field_declaration,field_declaration);,identifiertype_name;,field_name field_type|variable%TYPE,|table.column%TYPE|table%ROWTYPE,NOT NULL:=|DEFAULT,expr,创建一个,PL/SQL,记录,举例:,声明变量存储新员工的姓名、工作和工资。,.,TYPE,emp,_record_type IS RECORD,(,ename,VARCHAR2(10),job VARCHAR2(9),sal,NUMBER(7,2);,emp,_record,emp,_record_type;,.,PL/SQL,记录结构,Field1(,datatype,)Field2(,datatype,)Field3(,datatype,),empno,number(4),ename,varchar2(10)job varchar2(9),Field1(,datatype,)Field2(,datatype,)Field3(,datatype,),举例:,为,PL/SQL,记录赋值,为,PL/SQL,记录赋值可以使用点号引用记录中的字段。,语法:,record_name.field_name,例:,emp,_record.Job:=,CLERK;,emp,_record1:=,emp,_record2;,SELECT,ename,job,sal,INTO,emp,_record FROM,emp,WHERE,ename,=,SMITH;,%ROWTYPE,属性,声明的变量对应于数据库表或视图中列的集合。,在,%ROWTYPE,之前加上数据库表名。,记录内字段的名字和数据类型参照表或视图中的列。,%ROWTYPE,的优点,可以不必知道数据库中列的数量和类型。,在运行期间,数据库中列的数量和类型可能发生变化。,在,SELECT,语句中使用该属性可以有效地检索表中的行。,%ROWTYPE,属性,举例:,声明一个变量来存放与表,DEPT,中相同的部门信息。,声明一个变量来存放与表,DEPT,中相同的员工信息。,dept_recorddept%ROWTYPE;,emp,_record,emp,%ROWTYPE;,PL/SQL,表,表内有两个组件:,主键,,BINARY_INTEGER,型,列,标量或记录类型,可以动态地增长,因为表不受限制。,创建一个,PL/SQL,表,语法,:,TYPE,type_name,IS TABLE OF,column_type|variable%TYPE,|table.column%TYPE NOT NULL,INDEX BY BINARY_INTEGER;,identifiertype_name;,.,TYPE,ename,_table_type,IS TABLE OF,emp,.,ename,%TYPE,INDEX BY BINARY_INTEGER;,ename,_table,ename,_table_type;,.,举例,:,声明一个,PL/SQL,表存储姓名,PL/SQL,表结构,主键列,.,1Jones,2Smith,3,Maduro,.,BINARY_INTEGER,型标量型,创建 一个,PL/SQL,表,DECLARE,TYPE,ename,_table_type IS TABLE OF,emp,.,ename,%TYPE,INDEX BY BINARY_INTEGER;,TYPE,hiredate,_table_type IS TABLE OF DATE,INDEX BY BINARY_INTEGER;,ename,_table,ename,_table_type;,hiredate,_table,hiredate,_table_type;,BEGIN,ename,_table(1):=CAMERON;,hiredate,_table(8):=SYSDATE+7;,IF,ename,_table.EXISTS(1)THEN,INSERT INTO.,.,END;,含有记录的,PL/SQL,表,可以使用,%ROWTYPE,定义一个,TABLE,变量,举例:,声明一个,PL/SQL,变量保存部门信息。,DECLARE,TYPE dept_table_type IS TABLE OF dept%ROWTYPE,INDEX BY BINARY_INTEGER;,dept_table dept_table_type;,-Each element of dept_table is a record,引用语法:,table(index).Field,例:,dept_table(15).Location:=AT;,使用,PL/SQL,表方法,下面的一些方法使得,PL/SQL,表更易于操作:,EXISTS,COUNT,FIRST and LAST,PRIOR,PL/SQL,表方法,方法,描述,EXISTS(n),用于判断,PL/SQL,表中指定的元素是否存在。,COUNT,返回一个,PL/SQL,表当前包含的元素的数量。,FIRST,LAST,在,PL/SQL,表中返回第一个和最后一个索引数字。,PRIOR(N),在,PL/SQL,表中返回索引,n,之前的索引编号。,NEXT(N),在,PL/SQL,表中返回索引,n,之后的索引编号。,EXTEND(n,i),向,PL/SQL,表中添加一个或多个元素,也可复制一个或多个元素。,EXTEND,仅在,PL/SQL,表后添加一个,NULL,元素。,EXTEND(n),向,PL/SQL,表后面添加,n,个元素。,EXTEND(n,i),向,PL/SQL,表后面添加,n,个,i,元素的副本。,TRIM,TRIM,把一个元素从一个,PL/SQ,表的最后移开。,TRIM(n),把元素,n,从一个,PL/SQ,表的最后移开。,DELETE,DELETE,把所有的元素从,PL/SQ,表中移开。,DELETE,(,n,)把第,n,个元素从,PL/SQ,表中移开。,DELETE(m,n),从,PL/SQ,表中移开在范围(,m,n,)中的所有元素。,PL/SQL,表记录的举例,DECLARE,TYPE e_table_type IS TABLE OF,emp,.,Ename,%Type,INDEX BY BINARY_INTEGER;,e_tab e_table_type;,BEGIN,e_tab(1):=SMITH;,UPDATE,emp,SET,sal,=1.1*,sal,WHERE,Ename,=e_tab(1);,COMMIT;,END;,/,小结,定义并引用复合型,PL/SQL,变量:,PL/SQL,记录,PL/SQL,表,PL/SQL,表记录,通过,%ROWTYPE,属性定义一个,PL/SQL,记录。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服