SAP ABAP——OPEN SQL(六)【DML】

举报
Thunder Wang 发表于 2023/01/31 21:45:34 2023/01/31
【摘要】 本文主要介绍一下SAP ABAP中OPEN SQL的数据操控语言(DML)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要:本文主要介绍一下SAP ABAP中OPEN SQL的数据操控语言(DML)


🤟每日一言:生活熬过苦难,才有回忆的笑谈。 愿你成为自己的太阳,无需凭借谁的光。


ABAP DML语句分类

DML语句(data manipulation language)又称数据操控语言,在传统数据库中数据操控语言只有三种,分别是INSERT,UPDATE,DELETE语句,而在SAP ABAP OPEN SQL中DML语句还额外多了一个MODIFY语句,该语句融合了INSERT和UPDATE语句的特点。ABAP四种DML语句的基本介绍如下表所示

语句 功能
INSERT 插入语句
UPDATE 更新语句
DELETE 删除语句
MODIFY 插入&更新语句

INSERT语句介绍

插入单条数据语句

INSERT INTO <target> VALUES <wa>.
INSERT <target> FROM <wa>.

- 案例代码演示

DATA:GS_SFLIGHT TYPE SFLIGHT.
GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
INSERT INTO SFLIGHT VALUES GS_SFLIGHT.

- 效果演示

aaaadcb329073e18fc1117b69c4bbb20.jpeg

47eb06fb4a9a6db1cc09d869634623f2.jpeg


插入多条数据语句

INSERT <target> FROM TABLE <itab> [ACCEPTING DUPLICATE KEYS].

注:插入相同主键的数据时会发生dump error,为了避免发生这种错误要使用ACCEPTING DUPLICATE KEYS语句

- 案例代码演示

DATA:GS_SFLIGHT TYPE SFLIGHT.
DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '20020217'.
APPEND GS_SFLIGHT TO GT_SFLIGHT.
INSERT SFLIGHT FROM TABLE GT_SFLIGHT.

- 效果演示

4cd6821a381e08a7c2fb77f27966c6b0.png

4682295979d3ea5518a46457a8d6f187.png


UPDATE语句介绍

修改单条数据语句

UPDATE <target> FROM <wa>.

- 案例代码演示

DATA:GS_SFLIGHT TYPE SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '00000000'.
GS_SFLIGHT-PRICE = 1600.

UPDATE SFLIGHT FROM GS_SFLIGHT. 

- 效果演示

b4bae1d88f7a4048422d8ee7cec956da.jpeg

f65805dfa2c4d355e7200227e3f102ab.jpeg


修改多条数据语句

UPDATE <target> FROM TABLE <itab>.UPDATE <target> SET <set1> <set2> WHERE <cond>.

- 案例代码演示(从内表更新数据库表)

DATA:GS_SFLIGHT TYPE SFLIGHT.
DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '00000000'.
GS_SFLIGHT-PRICE = 2000.
APPEND GS_SFLIGHT TO GT_SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '20020217'.
GS_SFLIGHT-PRICE = 2100.
APPEND GS_SFLIGHT TO GT_SFLIGHT.

UPDATE SFLIGHT FROM TABLE GT_SFLIGHT.

- 效果演示(从内表更新数据库表)

196c85075729aa14e50eec25dccbb79b.jpeg

7b3e011a7f9df3e41575c494c5edeeaa.jpeg

- 案例代码演示(修改指定字段)

UPDATE SFLIGHT SET PRICE = 1600 CURRENCY = 'CNY' 
WHERE CARRID = 'AC'AND CONNID = 0820 AND FLDATE = '00000000'.

- 效果演示(修改指定字段)

196c85075729aa14e50eec25dccbb79b.jpeg

0fe62e22ee03a5a945e5a02818876158.jpeg


DELETE语句介绍

删除单条数据

DELETE <target> FROM <wa>.

- 案例代码演示

DATA:GS_SFLIGHT TYPE SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-PRICE = 1600.

DELETE SFLIGHT FROM GS_SFLIGHT.

- 效果演示

ba95b1c0e5a3c2b19a75f7890785e481.jpeg

627beadc7ed39b158402876b3161952f.jpeg


删除多条数据

DELETE FROM <target> WHERE <cond>.

- 案例代码演示

DELETE  FROM SFLIGHT WHERE PRICE = 1600 OR PRICE = 2100.

- 效果演示

84567a566adf1bf198307acb43b9c7e5.jpeg

94f750589566e11f4006b789a4fb42c0.jpeg


MODIFY语句介绍

插入/更新单条数据

MODIFY <target> FROM <wa>.

- 案例代码演示(插入数据)

DATA:GS_SFLIGHT TYPE SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '20200615'.
GS_SFLIGHT-PRICE = 1600.

MODIFY SFLIGHT FROM GS_SFLIGHT.

- 效果演示

724d0ad7e8e9c44ce632c22685880b05.jpeg

475a1dac4b7d92f57aa9c986d01c6c78.jpeg

- 案例代码演示(更新数据)

DATA:GS_SFLIGHT TYPE SFLIGHT.GS_SFLIGHT-CARRID = 'AC'.GS_SFLIGHT-CONNID = 0820.GS_SFLIGHT-FLDATE = '20200615'.GS_SFLIGHT-PRICE = 2100.MODIFY SFLIGHT FROM GS_SFLIGHT.

- 效果演示

475a1dac4b7d92f57aa9c986d01c6c78.jpeg


761df2f06f291686659b0599062e2bb1.jpeg


插入/更新多条数据

MODIFY <target> FROM TABLE <itab>.

- 案例代码演示(更新数据)

DATA:GS_SFLIGHT TYPE SFLIGHT.
DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '20200615'.
GS_SFLIGHT-PRICE = 1600.
APPEND GS_SFLIGHT TO GT_SFLIGHT.

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '20200617'.
GS_SFLIGHT-PRICE = 2100.
APPEND GS_SFLIGHT TO GT_SFLIGHT.

MODIFY SFLIGHT FROM TABLE GT_SFLIGHT.

- 效果演示

735afef8956fe529b6236db02f94e950.jpeg

1e459b3f8cdc4d4149f0e29eedec51bb.jpeg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。