SAP ABAP——内表(一)【内表概要介绍】
【摘要】 本文是SAP ABAP【内表】文章系列的开篇,主要对内表进行简单的介绍,将从概要,分类以及比较三个方面进行介绍
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。
💅文章概要:本文是SAP ABAP【内表】文章系列的开篇,主要对内表进行简单的介绍,将从概要,分类以及比较三个方面进行介绍
🤟每日一言:一切真实的感知,都是由泪水和汗水换来的。
内表概要
- 内表定义
内表是SAP ABAP中最具有影响力且最重要的功能之一,简而言之,用一句话概括内表的定义就是:内表是可以在程序内部定义并且使用的表,属于本地表。如下图展示出了参照数据库表sflight定义的内表的结构
- 内表与数据库表区别
内表和数据库表的很大区别在于:数据库表中存放的数据是永久的;而内表是动态数组,内表中存放的数据是临时的,只有当执行程序时才会占用内存,程序关闭时即释放内存。内表可以包含的数据件数为内存大小所限制。
- 内表的作用
一般来说针对数据库表中数据的操作,都要首先将数据库表中数据输出到内表中,再通过内表对数据进行处理,最后再更新回数据库表中,在这过程中,内表相当于起到一个中间桥梁的作用,极大地保护了数据库表中数据的安全性。
内表的分类
在SAP ABAP中内表有三种类型,它们分别是标准表,排序表以及哈希表,下面将依次介绍三种表
- 标准表
标准表是有顺次索引的树型结构内表,是利用索引查找内表行数据时易于使用的内表类型。标准表的关键字并非唯一,即标准表中不能使用WITH UNIQUE语句,只能使用WITH NON-UNIQUE语句。
- 排序表
排序表是已经按照关键字排序好的内表类型,其拥有索引,也拥有关键字,可以通过索引或者关键字查询对应的行数据。与标准表不同,排序表可使用WITH UNIQUE语句且自带BINARY SEARCH(二分查找)功能。又因为排序表已经排序,所以使用SORT语句会报错。
- 哈希表
哈希表没有顺次索引,只能用哈希值计算出的KEY值进行检索,哈希值用于直接读取哈希算法算出的内存地址中存储的数据。哈希表一定要使用WITH UNIQUE语句指定关键字。
不同内表速度比较及适用场景
为了更加直观地展现三种内表的速度和适用场景,将其制作成比较表展现如下:
语句 | 标准表 | 排序表 | 哈希表 |
---|---|---|---|
READ语句速度比较 | 速度慢 | 速度快 | 速度最快 |
APPEND语句速度比较 | 速度快 | 速度最慢 | 速度慢 |
用索引访问(INDEX Access) | 是 | 是 | 不是 |
用关键字访问(KEY Access) | 是 | 是 | 是 |
关键字(KEY VALUES) | 不唯一 | 唯一或者不唯一 | 唯一 |
建议使用的访问方法 | 索引访问 | 关键字访问 | 只能使用关键字访问 |
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)