1、索引表
索引表的机制实现不同于数组,pl/sql的索引表实现类似于数据库中的表,它有两列:key与value. key的类型是binary_integer,而value的类型是is table of data_type中的data_type指定的数据类型.
2、索引表的一些特性:
索引表是将数据保存在内存中!
索引表是不受约束的,最大值是binary_integer的取值范围
pl/sql索引表的元素没有必要按照特定的次序排序,元素可以按照任意键进行插入
pl/sql索引表使用键(key)没有必要是顺序的,所有binary_integer数据或表达式都可以作用表的索引
索引表的下标可以为负
3、索引表语法
-- 定义记录集
TYPE yang_rec IS RECORD( ename varchar2(30), eid NUMBER );
-- 定义索引表类型
TYPE yang_tab IS TABLE OF yang_rec INDEX BY BINARY_INTEGER;
-- 定义索引表对象的实例
test_tab yang_tab;
索引表的数据类型也可以是简单数据类型(varchar2 ,number等)
4、将条目插入到索引表中
索引表中的每个元素都由一个唯一的整型值(索引)标识。引用表中的值时,必须提供该值的索引。
索引的范围:1 ---- 2147483647,索引值可以不连续,同时PL/SQL并不为没有使用的条目预留空间。
例如:
DECLARE
CURSOR all_emps IS
SELECT * FROM employee
ORDER BY emp_id;
TYPE emp_table IS TABLE OF employee%ROWTYPE INDEX BY BINARY_INTEGER;
emps emp_table;
emps_max BINARY_INTEGER;
BEGIN
emps_max := 0;
FOR emp IN all_emps
LOOP
emps_max := emps_max + 1;
emps(emps_max).emp_id := emp.emp_id;
emps(emps_max).emp_name := emp.emp_name;
END LOOP;
END;
对索引表中进行操作
1) 插入:见上例。
2) 引用:
IF emps.EXIST(10) THEN
DBMS_OUTPUT.PUT_LINE('存在第10条记录。');
END IF;
3) 修改:
修改emps 表中的第100个条目:
emps(100).emp_name := 'yang linker';
4) 删除:
-- 删除emps 表中的第100个条目:
emps.DELETE(100);
-- 删除emps 表中的从1到100的条目:
emps.DELETE(1, 100);
-- 删除emps 表中的的所有条目:
emps.DELETE;
5、索引表中的函数
1) count:返回表的条目数量:
num_rows := emps.COUNT;
2) EXISTS:如果指定的条目存在,则返回为真;否则为假。
IF emps.EXIST(10) THEN
DBMS_OUTPUT.PUT_LINE('存在第10条记录。');
END IF;
3) LIMIT:该方法返回集合可以包含的最大元素数目。只有变长数组才有上限。将LIMIT 用于嵌套表和索引
表时,其返回为NULL。
4) FRIST:该方法返回集合中使用的最小的索引值。
5) LAST:该方法返回集合中使用的最大的索引值。
6) NEXT:该方法返回集合中当前使用的下一个索引值。
7) PRIOR:该方法返回集合中当前使用的上一个索引值。
8) DELETE:删除集合中的条目,见前例。
9) TRIM:从集合的尾部删除一个或多个条目,无返回值,只适用于变长数组和嵌套表。
emps.TRIM(1); -- 从集合的尾部删除一个条目
emps.TRIM(3); -- 从集合的尾部删除三个条目
10) EXTEND:在集合的尾部添加条目或复制已有的条目,只适用于变长数组和嵌套表。
emps.EXTEND(1); -- 从集合的尾部添加一个条目
emps.EXTEND(3); -- 从集合的尾部添加三个条目
emps.EXTEND(1, 3);-- 复制集合的第三个条目,并将其添加到表的末尾。
分享到:
相关推荐
C语言实现的词索引表程序:IndexBook。C语言实现按照索引插入并查找元素。严蔚敏建立词索引表:严蔚敏数据结构C语言实现,串操作应用举例中的词索引表例子,由于作者没给出完整源码,自己写了一个比较完整的。
词索引表构建程序代码 北大资源 需要的自己下载
索引类型-说明 索引文件有数据文件和索引表文件组成。 索引表中存放记录的关键字和记录在文件中的位置。 多级索引。
参考资料-建筑工程分部(子分部)工程划分与代号索引表.zip
最近编了一个词索引表的程序,相当不错,有兴趣的可下载一下。
汇编指令快速索引表 适合新手使用
严蔚敏数据结构C语言实现,串操作应用举例中的词索引表例子,由于作者没给出完整源码,自己写了一个比较完整的
问题描述:信息检索是计算机应用的重要领域之一。为了提高图书馆数目检索的效率,建立书名关键词索引,可以实现读者快速检索书目的自动化,即读者根据关键词索引表,读者可以方便查询到自己感兴趣的书目。
数据结构索引表(INDEX TABLE)C++实现代码
档案索引表(表格模板、DOC格式).doc
数据结构-词索引表代码 vs2008调试成功,c语言编写
汉语拼音音节索引表(无错误版)借鉴.pdf
附录一、GRI索引表–一般标准揭露.pdf
上海证券交易所信息披露公告类别索引表[定义].pdf
本程序基于VC++,读取BMP数据(建议256色),通过基于索引表的细化算法进行细化操作。数据必须使用二值图像数据,背景为白色,线数据为黑色。不支持PNG、JPG图像。
VB 指令、函数 索引表.VB 指令、函数 索引表.VB 指令、函数 索引表.VB 指令、函数 索引表.VB 指令、函数 索引表.
Dalvik字节码解析可参考Bytecode for the Dalvik VM和Dalvik VM Instruction Formats,一个是指令的位描述表,一个是指令的语法格式表.
可运行
数据结构课程设计之建立词索引。希望多多支持!
用C++实现一个简单的索引表,内有详细代码,欢迎下载