SAP入门技术分享五:内表

news2024/11/22 1:16:31

内表

  • 1. 概要
  • 2. 内表与表头
  • 3.内表的类型
    • (1)类型
    • (2)标准表
    • (3)排序表
    • (4)哈希表
  • 4.比较内表速度
    • (1)标准表与排序表
    • (2)二分法查找
    • (3)BINARY SEARCH和排序
    • (4)测定哈希表速度-三种内表比较
  • 5.内表命令
    • (1)内表赋值
    • (2)内表初始化
    • (3)内表排序
    • (4)内表属性
  • 6.追加内表数据
    • (1)INSERT语句
    • (2)APPEND语句
    • (3)COLLECT语句
  • 7.修改内表数据
    • (1)利用表关键字修改一条数据
    • (2)利用WHERE条件修改多条数据
    • (3)利用索引修改一条数据
  • 8.删除内表数据
    • (1)利用表关键字删除一条数据
    • (2)利用WHERE条件删除多条数据
    • (3)利用索引删除内表数据
    • (4)利用ADJACENT DUPLICATE语句删除重复行
  • 9.读取内表数据
    • (1)利用关键字读取内表数据
    • (2)利用索引读取内表数据

1. 概要

(1)定义:内表属于本地表,在程序内部定义和使用
(2)特点:
  a. 内表是动态数组;
  b. 内表刚定义时不会事先指定占用实际内存的大小,只使用INITIAL SIZE语句指定内表可以占用实际内存的大小。
(3)参照局部表类型创建内表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)参照全局表定义内表
在这里插入图片描述

2. 内表与表头

(1)定义:定义内表时用WITH HEADER LINE指明表头。
(2)区别:
在这里插入图片描述

3.内表的类型

(1)类型

  标准表、排序表、哈希表。

(2)标准表

  特点:利用索引查找内表行数据。
  语法:
在这里插入图片描述  读取:
  a.按索引读取
在这里插入图片描述
  b.按关键字读取
在这里插入图片描述

(3)排序表

  特点:已经按关键字排序好。排序表自带BINARY SEARCH功能。
  区别:排序表定义关键字时,可使用WITH UNIQUE语句;而标准表只能使用WITH NO-UNIQUE语句。

在这里插入图片描述

(4)哈希表

  特点:没有顺次索引,只能用哈希值计算出的key值进行检索,一定要设为Unique形式。
  区别:哈希表的内表不存在索引,需使用READ TABLE ~ WITH TABLE KEY或WITH KEY语句。

4.比较内表速度

(1)标准表与排序表

在这里插入图片描述
  特点:排序表读取数据速度很快;
     标准表增加数据时比排序表快。

(2)二分法查找

  定义:二分法查找是利用二进制检索数据的方法。
  特点:使用之前要先按照关键字排序数据。
在这里插入图片描述

(3)BINARY SEARCH和排序

  区别:排序表里的数据已经是有序数据,因此不需要SORT命令,也不需使用BINARY SEARCH。

(4)测定哈希表速度-三种内表比较

  特点:哈希表读取数据时使用哈希算法,因此始终以相同的速度访问表;但是使用INSERT时速度会下降,而且关键字一定要设为Unique形式。
在这里插入图片描述
在这里插入图片描述

5.内表命令

(1)内表赋值

  表头赋值:MOVE itab1 TO itab2.
  内表赋值:MOVE itab1[] TO itab2[].
  类型不同时赋值:MOVE-CORRESPONDING itab1 TO itab2.

(2)内表初始化

  定义:初始化内表的语句有CLEAR、REFRESH、FREE这三种。
在这里插入图片描述
在这里插入图片描述

(3)内表排序

  定义:用sort语句可以排序标准表和哈希表,默认是升序,而且可以指定排序字段。
  语法:
在这里插入图片描述注意:  每次使用SORT命令时排序序列号一直在变化。此时使用Stable Sort语句就能保留排序序列号,但也会消耗更多排序时间。
在这里插入图片描述

(4)内表属性

  定义:可以用DESCRIBE语句确认内表属性。
  语法:
在这里插入图片描述
  说明:
  A.LINES返回内表包含的数据件数;
  B.OCCURS返回内表的初始大小;
  C.KIND返回内表的类型,T代表标准表、S代表排序表、H代表哈希表。

6.追加内表数据

(1)INSERT语句

  功能:插入到内表最后一行,根据内表类型不同,执行结果不同。
  语法:
  利用表关键字追加一条数据:
在这里插入图片描述
  利用关键字追加多条数据:
在这里插入图片描述
  例子:
在这里插入图片描述
  利用索引追加一条数据
在这里插入图片描述
  特点:语句执行完毕后,系统变量SY-SUBRC返回0,同时系统变量SY-TABIX返回索引值。
  不同的内表类型有不同的INSERT效果:
在这里插入图片描述

(2)APPEND语句

  功能:插入到内表最后一行。
  语法:
  追加一条数据:
在这里插入图片描述
  追加多条数据:
在这里插入图片描述
  特点:
  a.只能利用索引插入,且哈希表不能使用APPEND语句。
  b.APPEND INITIAL LINE?
在这里插入图片描述
  不同的内表类型有不同的APPEND效果:
在这里插入图片描述

(3)COLLECT语句

  功能:使用COLLECT语句可以合计内表中关键字相同的数字类型的字段;不存在关键字的内表,则会把CHAR类型的字段作为关键字执行相同的操作。

7.修改内表数据

(1)利用表关键字修改一条数据

  特点:存在重复数据时,执行MODIFY语句会修改第一条数据。
  语法:
在这里插入图片描述

(2)利用WHERE条件修改多条数据

  语法:
在这里插入图片描述

(3)利用索引修改一条数据

  特点:只能用于标准表和排序表。
  语法:
在这里插入图片描述

8.删除内表数据

(1)利用表关键字删除一条数据

  语法:
在这里插入图片描述

(2)利用WHERE条件删除多条数据

  语法:
在这里插入图片描述

(3)利用索引删除内表数据

  语法:
在这里插入图片描述

(4)利用ADJACENT DUPLICATE语句删除重复行

  特点:执行此语句前要先用SORT语句排序内表。
  语法:
在这里插入图片描述

9.读取内表数据

(1)利用关键字读取内表数据

  语法:在这里插入图片描述

(2)利用索引读取内表数据

  语法:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/165135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kafka生产者分区

生产者分区 分区的原因 (1)便于合理使用存储资源,每个Patition在一个Broker上存储,可以把海量的数据按照分区切割成一块一块数据存储在多台Broker上。合理控制分区的任务,可以实现负载均衡的效果。 (2)提高并行度&am…

如何设计一个消息队列?

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

用户登录、注册的简单案例: html+css+MyBatis+Servlet

用户登录一. 用户登录1. 流程与思路基本流程:详细过程:2. 准备环境建库建表Pojo实体类User:Maven坐标:mybatis核心配置文件:代理接口:3. 编写目录:HTML:Serlvet:4. 效果二…

【Leetcode】21. 合并两个有序链表

【Leetcode】21. 合并两个有序链表题目思路代码题目 思路 归并排序比较两个单链表每一个节点,将较小元素的节点值封装成一个新的节点添加到一个新的链表中如果两个单链表长度不一致,也就是有一个链表指针指向null ,那么将另一个链表中的所有节点全部添加…

【手写 Vue2.x 源码】第二十四篇 - 异步更新流程

一,前言 上篇,介绍了 Vue依赖收集的视图更新部分,主要涉及以下几点: 视图初始化时: render方法中会进行取值操作,进入 Object.defineProperty 的 get 方法get 方法中为数据添加 dep,并记录当…

20230115英语学习

Gold From Old Sim Cards Could Help Make Future Drugs SIM卡中回收的黄金,可用于制造药品 Chemists are paving a road to recycle discarded SIM cards, not for electronics, but for medicine. SIM cards, which allow your phone to connect to your netwo…

ATTCK 05

环境搭建 自行下载安装包 解压VMware中win7 win8 同样方法所要用到的攻击机为kali 调节kali的网络适配器为vmnet8 调节win7的网络适配器 增加vmnet5用来连接内网win8 vmnet5名称ip角色kali192.168.115.129攻击机win7192.168.115.150192.168.138.136win8192.168.138.138DC拓…

【 java 反射上篇】java反射机制不难吧?来看看这篇

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

BMS系统—产生原因如何工作

1 为什么需要BMS系统 1.1 介绍 1)BMS,battery management system,电池管理系统 2)BMS是一套嵌入式系统,由硬件和软件共同组成 3)BMS功能:管理多节锂电池组成的电池包,实现充放电管理、安全保护…

jsp动物园网上购票系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 动物园网上购票系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统采用web模式开发,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#x…

Python:每日一题之FBI树(深度优先遍历)

题目描述 我们可以把由 “0” 和 “1” 组成的字符串分为三类:全 “0” 串称为 B 串,全 “1” 串称为 I 串,既含 “0” 又含 “1” 的串则称为 F 串。 FBI树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点…

Anolis 8.6 部署 Kafka 3.3.1 安装和测试

龙蜥 8.6 安装 Kafka 3.3.1 并通过 SpringBoot 3.0.1 版本调试一.Kafka 安装1.下载编译后的文件2.拷贝到 Anolis 并解压3.启动服务3.常用命令1.Topic 增查删2.生产消费测试二.SpringBoot 连接 Kafka1.项目结构、依赖、配置文件和启动类2.生产者和生产监听3.消费者和消费监听4.自…

【Java寒假打卡】Java基础-并发工具类

【Java寒假打卡】Java基础-并发工具类HashMap在多线程下的问题ConcurrentHashMapCountDownLatchHashMap在多线程下的问题 package com.hfut.edu.test14;import com.sun.jdi.request.StepRequest;import java.util.HashMap;public class test2 {public static void main(String…

信号的时域和频域特性的区别到底是什么?

不严谨的说,时域和频域分析就是在不同的空间看待问题的,不同空间所对应的原子(基函数)是不同的。你想一下时域空间的基函数是什么?频域空间的基函数是什么?一般的时-频联合域空间的基函数是什么?小波域空间的基函数是什…

线索二叉树(c++)

1.引言: 二叉树的三种遍历方法能将二叉树中的结点按某种方式生成一个线性序列,能将一个非线性结构进行线性化操作。但随之也产生两个问题: 遍历效率低 在采用左右链表示方法作为二叉树的存储结构时,当二叉树更新后,并…

【博客586】ipvs的hook点位置以及hook点钩子函数剖析

ipvs的hook点位置以及hook点钩子函数剖析 ipvs实现负载均衡的基础 ipvs其实是基于netfilter框架来挂载hook点,从而对流量进行dnat等操作 ipvs的hook点剖析 IPVS的实现利用了Netfilter的三个Hook点,分别是:NF_INET_LOCAL_IN、NF_INET_LOCAL_O…

【nvidia CUDA 高级编程】NVSHMEM 直方图——复制式方法

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

pandas时间序列,案列

一:pandas时间序列 1.1为什么要学习pandas中的时间序列 不管在什么行业,时间序列都是一种非常重要的数据形式,很多统计数据以及数据的规律也都和时间序列有着非常重要的联系,而且在pandas中处理时间序列是非常简单的 1.2生成一段时…

【Python技巧】:cmd查看Python版本号居然与自己电脑装的版本不一致,特此提出解决方案

项目场景: 大家好!欢迎大家看我的博客,最近学习Python的GUI(PyQt5)的时候发现了自己电脑的一个python问题,我本想装一下PyQt5,顺手查了一下自己电脑的Python版本,没想到居然是Python…

哈希表(二)—— 开散列 / 拉链法 / 哈希桶的模拟实现

哈希表的基本思路是通过某种方式将某个值映射到对应的位置,这里的采取的方式是除留余数法,即将原本的值取模以后再存入到数组的对应下标,即便存入的值是一个字符串,也可以根据字符串哈希算法将字符串转换成对应的ASCII码值&#x…