• OPENSQL2


    OPENSQL是ABAP中自带的一种SQL,它经过SAP解析器将OPEN SQL 语句转换成后台数据库能够识别的SQL语句。

    常用语句

    数据库选取 ----SELECT
    数据库表插入 ---- INSERT 
    数据库表修改  ---- UPDATE/MODIFY
    数据库表删除  ---- DELETE
    提交至数据库  ----  COMMIT WORK/ROLLBACK  WORK
    
    • 1
    • 2
    • 3
    • 4
    • 5

    数据库表选取

    SELECT…INTO… 覆盖数据
    数据库表循环语句

    SELECT  field1  field2  field3
    	FROM  field1  field2  field3
    		INTO [CORRESPONDING  FIELDS OF ]wa/
    	APPEND  wa  TO  itab.
    ENDSELECT.
    *选取多条数据
    SELECT  field1  field2  field3
    	FROM  database  table 
    		INTO [CORRESPONDING FIELDS  OF]  TABLE itab.
    *  选取单条
    SELECT  SINGLE field1  field2  field3
    	FROM  database  table 
    		INTO [CORRESPONDING FIELDS  OF]  TABLE itab.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    SELECT … APPENDING … 追加数据
    语法规则类似,不会覆盖内表中的数据,而是在原本的内表中追加数据

    INSERT

    -- 在数据库表里插入一条记录的语句用  INSERT 语句,如果数据表里已经存在了一条相同的记录,会出现两种情况,如果从结构插入,返回值为4,如果从内表插入,便会出现系统错误。
    
    从结构中插入
    
    • 1
    • 2
    • 3
    GS_SCORE-ZINDEX  = '20000'.
    GS_SCORE-NAME = 'ABC'.
    INSERT  ZHQ_SCORE_02  FROM  GS_SCORE.
    
    • 1
    • 2
    • 3
    GS_SCORE-ZINDEX = '20002'.
    GS_SCORE-NAME = 'ABC'.
    APPEND  GS_SCORE  TO GT_SCORE.
    INSERT  ZHQ_SCORE_02  FROM  TABLE GT_SCORE.
    
    • 1
    • 2
    • 3
    • 4

    数据库表修改

    对于数据库表的变更一般只针对用户自定义的表(CBO TABLE),对于系统标准表不推荐编写ABAP程序更改,
    而是使用SAP标准程序更改。
    UPDATE
    Update 语句只会更改数据库表里相关记录已经存在的数据,如果记录不存在,则显示系统错误

    *从结构更新
    GS_SCORE-NAME = 'TEST'.
    UPDATE  ZHQ_SCORE_02  FROM GS_SCORE.
    
    • 1
    • 2
    • 3
    * 从内表更新
    GS_SCORE-ZINDEX = '30000'.
    GS_SCORE-NAME = ''ABC'.
    APPEND  GS_SCORE  TO GT_SCORE.
    UPDATE ZHQ_SCORE_02 FROM TABLE GT_SCORE.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    * 使用SET 更新
    UPDATE  ZHQ_SCORE_02  SET  SEX = 'F'  WHERE  NAME = 'AAA'.
    
    • 1
    • 2

    MODIFY
    Modify语句会检查数据库表里相关的记录是否存在,如果存在就会更改记录,如果不存在则会在数据库里追加一条新的记录。

    *从结构修改
    GS_SCORE-ZINDEX = '20003'.
    GS_SCORE-NAME  = 'ABC'.
    MODIFY  ZHQ_SCORE_02  FROM  GS_SCORE.
    
    • 1
    • 2
    • 3
    • 4
    *从内表修改
    GS_SCORE-ZINDEX  = '20003'.
    GS_SCORE-NAME = 'BBB'.
    APPEND GS_SCORE TO GT_SCORE.
    
    MODIFY ZHQ-SCORE_02 FROM TABLE GT_SCORE.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    数据库表删除

    DELETE
    ----删除主键相同的数据,如果数据库表中不存在,则删除失败
    DELETE db FROM TABLE itab.
    DELETE db FROM wa.
    DELETE FROM db WHERE field = val.

    * 从结构删除
     gs_score-zindex = '20003'.
     gs_SCORE-NAME = 'AAA'.
    DELETE ZHQ_SCORE_02  FROM GS_SCORE.
    
    • 1
    • 2
    • 3
    • 4
    * 从内表删除
     gs_score-zindex = '20004'.
     gs_SCORE-NAME = 'BBB'.
    DELETE ZHQ_SCORE_02  FROM TABLE GS_SCORE.
    
    • 1
    • 2
    • 3
    • 4
    * 删除
    DELETE FROM ZHQ_SCORE_02 
    	WHERE NAME = 'ABC'.
    
    • 1
    • 2
    • 3
  • 相关阅读:
    2.DesignForClines\4.BgaAutoRouting
    【开源】基于Vue.js的衣物搭配系统的设计和实现
    【博客搬家】
    java计算机毕业设计学生健康信息管理源码+系统+mysql数据库+lw文档
    C语言自定义类型详解 —— 结构体、枚举、联合体
    【Leetcode】二分查找合集
    【计算机体系知识】操作系统笔记(持续更新)
    Navicat Premium 修改表注释
    多商户商城系统功能拆解38讲-平台端营销-砍价商品
    《MongoDB》MongoDB的简介与体系结构
  • 原文地址:https://blog.csdn.net/weixin_43847969/article/details/126786183