最新整理c语言中table的用法有哪些
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言中t a b l e的用法有哪些
C语言对于初学者来说是很复杂的,那么c语言中t a b l e的用法的用法你知道吗?下面学习啦小编就跟你们详细介绍下c语言中t a b l e的用法,希望对你们有用。
c语言中t a b l e的用法:R E C O R D定义记录数据类型。
它类似于C语言中的结构数据类型(S T R U C T U R E),P L/S Q L 提供了将几个相关的、分离的、基本数据类型的变量组成一个整体的方法,即R E C O R D复合数据类型。
在使用
记录数据类型变量时,需要在声明部分先定义记录的组成、记录的变量,然后在执行部分引用该记录变量本身或其中的成员。
定义记录数据类型的语法如下:
T Y P E R E C O R D_N A M E I S R E C O R D(
V1D A T A_T Y P E1[N O T N U L L][:=D E F A U L T_V A L U E],
V2D A T A_T Y P E2[N O T N U L L][:=D E F A U L T_V A L U E],
V N D A T A_T Y P E N[N O T N U L L][:=D E F A U L T_V A L U E]);
c语言中t a b l e的用法:V A R R A Y数组是具有相同数据类型的一组成员的集合。
每个成员都有一个唯一的下标,它取决于成员在数组中的位置。
在P L/S Q L中,数组数
据类型是V A R R A Y(v a r i a b l e a r r a y,即可变数组)。
定义V A R R A Y数据类型的语法如下:
T Y P E V A R R A Y_N A M E I S V A R R A Y(S I Z E)O F
E L E M E N T_T Y P E[N O T N U L L];
其中,v a r r a y_n a m e是V A R R A Y数据类型的名称,s i z e 是正整数,表示可以容纳的成员的最大数量,每个成员的数据类型是e l e m e n t_t y p e o默认时,成员可以取空值,否则需要使用N O T N U L L加以限制。
c语言中t a b l e的用法:T A B L E定义记录表(或索引表)数据类型。
它与记录类型相似,但它是对记录类型的扩展。
它可以处理多行记录,类似于C语言中的二维数组,使得可以在P L/S Q L中模仿数据库中的表。
定义记录表类型的语法如下:
T Y P E T A B L E N A M E I S T A B L E O F E L E M E N T_T Y P E[N O T N U L L]
I N D E X B Y
[B I N A R Y_I N T E G E R|P L S_I N T E G E R|V A R R A Y2];
关键字I N D E X B Y表示创建一个主键索引,以便引用记录表变量中的特定行。
B I N A R Y_I N T E G E R的说明
如语句:T Y P E N U M B E R S I S T A B L E O F N U M B E R I N D E X B Y B I N A R Y_I N T E G E R;其作用是,加了I N D E X
B Y B I N A R Y_I N T E G E R后,N U M B E R S类型的下标就是自增长,N U M B E R S类型在插入元素时,不需要初始化,不需要每次E X T E N D增加一个空间。
而如果没有这句话I N D E X B Y B I N A R Y_I N T E G E R,那就得要显示对初始化,且每插入一个元素到N U M B E R S类型的T A B L E中时,都需要先E X T E N D。
c语言中t a b l e的用法:创建表结构以及数据准备[s q l] v i e w p l a i n c o p y p r i n t?
01.--组织机构结构表
02.C R E A T E T A B L E S F_O R G
03.(
04.O R G_I D I N T N O T N U L L,--组织机构主键I D
05.O R G_N A M E V A R C H A R2(50),--组织机构名称
06.P A R E N T_I D I N T--组织机构的父级
07.)
08.
09.--一级组织机构
10.I N S E R T I N T O S F_O R G(O R G_I D,O R G_N A M E,
P A R E N T_I D)V A L U E S(1,一级部门1,0);
11.
12.--二级部门
13.
14.I N S E R T I N T O S F_O R G(O R G_I D,O R G_N A M E,
P A R E N T_I D)V A L U E S(2,二级部门2,1);
15.I N S E R T I N T O S F_O R G(O R G_I D,O R G_N A M E,
P A R E N T_I D)V A L U E S(3,二级部门3,1);
16.I N S E R T I N T O S F_O R G(O R G_I D,O R G_N A M E,
P A R E N T_I D)V A L U E S(4,二级部门4,1);
c语言中t a b l e的用法:R E C O R D的使用举例先定义一个只与S F_O R G表中某几个列的数据类型相同的记录数据类型T Y P E_O R G_R E C O R D,然后声明一个该数据类型的记录变量V_O R G_R E C O R D,最后用替换变量O R G_I D接受输入的雇员编码,查询并显示该雇员的这几列中的信息。
注意,在使用R E C O R D数据类型的变量时要用.运算符指定记录变量名限定词。
一个记录类型的变量只能保存从数据库中查询出的一行记录,如果查询出了多行记录,就会出现错误。
[s q l]v i e w p l a i n c o p y p r i n t?
01.D E C L A R E
02.T Y P E T Y P E_O R G_R E C O R D I S R E C O R D(
03.V_O R G_N A M E S F_O R G.O R G_N A M E%T Y P E,
04.V_P A R E N T_I D S F_O R G.P A R E N T_I D%T Y P E);
05.V_O R G_R E C O R D T Y P E_O R G_R E C O R D;
06.B E G I N
07.S E L E C T O R G_N A M E,P A R E N T_I D I N T O
V_O R G_R E C O R D
08.F R O M S F_O R G S O
09.W H E R E S O.O R G_I D=O R G_I D;
10.D B M S_O U T P U T.P U T_L I N E(部门名称: ||
V_O R G_R E C O R D.V_O R G_N A M E);
11.D B M S_O U T P U T.P U T_L I N E(上级部门编码: ||
T O_C H A R(V_O R G_R E C O R D.V_P A R E N T_I D));
12.E N D;
c语言中t a b l e的用法: V A R R A Y的使用举例先定义一个能保存5个V A R C H A R2(25)数据类型的成员的V A R R A Y数据类型O R G_V A R R A Y_T Y P E,然后声明一个该数据类型的V A R R A Y变量V_O R G_V A R R A Y,最后用与O R G_V A R R A Y_T Y P E 数据类型同名的构造函数语法给V_O R G_V A R R A Y变量赋
予初值并显示赋值结果。
注意,在引用数组中的成员时.需要在一对括号中使用顺序下标,下标从1开始而不是从0开始。
[s q l]v i e w p l a i n c o p y p r i n t?
01.D E C L A R E
02.T Y P E O R G_V A R R A Y_T Y P E I S V A R R A Y(5)O F
V A R C H A R2(25);
03.V_O R G_V A R R A Y O R G_V A R R A Y_T Y P E;
04.B E G I N
05.V_O R G_V A R R A Y:=
O R G_V A R R A Y_T Y P E(1,2,3,4,5);
06.D B M S_O U T P U T.P U T_L I N E(输出1: ||
V_O R G_V A R R A Y(1)||、||V_O R G_V A R R A Y(2)||、|| V_O R G_V A R R A Y(3)||、||V_O R G_V A R R A Y(4));
07.D B M S_O U T P U T.P U T_L I N E(输出2: ||
V_O R G_V A R R A Y(5));
08.V_O R G_V A R R A Y(5):=5001;
09.D B M S_O U T P U T.P U T_L I N E(输出3: ||
V_O R G_V A R R A Y(5));
10.E N D;
c语言中t a b l e的用法: T A B L E使用举例 2.4.1存储单列多行
这个和V A R R A Y类似。
但是赋值方式稍微有点不同,不能使用同名的构造函数进行赋值。
具体的如下:
[s q l]v i e w p l a i n c o p y p r i n t?
01.D E C L A R E
02.T Y P E O R G_T A B L E_T Y P E I S T A B L E O F
V A R C H A R2(25)
03.I N D E X B Y B I N A R Y_I N T E G E R;
04.V_O R G_T A B L E O R G_T A B L E_T Y P E;
05.B E G I N
06.V_O R G_T A B L E(1):=1;
07.V_O R G_T A B L E(2):=2;
08.V_O R G_T A B L E(3):=3;
09.V_O R G_T A B L E(4):=4;
10.V_O R G_T A B L E(5):=5;
11.D B M S_O U T P U T.P U T_L I N E(输出1: ||
V_O R G_T A B L E(1)||、||V_O R G_T A B L E(2)||、||
V_O R G_T A B L E(3)||、||V_O R G_T A B L E(4));
12.D B M S_O U T P U T.P U T_L I N E(输出2: ||
V_O R G_T A B L E(5));
13.E N D;
2.4.2存储多列多行和R O W T Y P E结合使用
采用b u l k c o l l e c t可以将查询结果一次性地加载到c o l l e c t i o n s中。
而不是通过c u r s o r一条一条地处理。
[s q l]v i e w p l a i n c o p y p r i n t?
01.D E C L A R E
02. T Y P E T_T Y P E I S T A B L E O F S F_O R G%R O W T Y P E;
03. V_T Y P E T_T Y P E;
04.B E G I N
05. S E L E C T O R G_I D,O R G_N A M E,P A R E N T_I D B U L K
C O L L E C T I N T O V_T Y P E
06. F R O M S F_O R G
07. W H E R E S F_O R G.O R G_I D=3;
08.
09. F O R V_I N D E X I N V_T Y P E.F I R S T .. V_T Y P E.L A S T L O O P
10.
D B M S_O U T P U T.P U T_L I N E(V_T Y P E(V_I N D
E X).C1|| || V_T Y P E(V_I N D E X).C2);
11. E N D L O O P;
12.E N D;
2.4.3存储多列多行和R E C O R D结合使用
采用b u l k c o l l e c t可以将查询结果一次性地加载到c o l l e c t i o n s中。
而不是通过c u r s o r一条一条地处理。
[s q l]v i e w p l a i n c o p y p r i n t?
01.D E C L A R E
02. T Y P E T E S T_E M P I S R E C O R D
03. (
04. C1S F_O R G.O R G_N A M E%T Y P E,
05. C2S F_O R G.P A R E N T_I D%T Y P E
06. );
07. T Y P E T_T Y P E I S T A B L E O F T E S T_E M P;
08. V_T Y P E T_T Y P E;
09.B E G I N
10. S E L E C T O R G_N A M E,P A R E N T_I D B U L K C O L L E C T
I N T O V_T Y P E
11. F R O M S F_O R G
12. W H E R E S F_O R G.O R G_I D=3;
13.
14. F O R V_I N D E X I N V_T Y P E.F I R S T .. V_T Y P E.L A S T L O O P
15.
D B M S_O U T P U T.P U T_L I N E(V_T Y P E(V_I N D
E X).C1|| || V_T Y P E(V_I N D E X).C2);
16. E N D L O O P;
17.E N D;
3问题
V A R R A Y和T A B L E集合不能直接对其进行查询。
只能对其进行遍历。