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

简介: 本文主要介绍SAP ABAP中OPEN SQL的数据操控语言(DML)

本文主要介绍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.

效果演示

528d6faaa3a96efcf403b1d008a3b9e.png

2c8b61b800f60cf6cf525f415b4d71d.png



插入多条数据语句

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.

效果演示

8f076c69dbeed9298c45f3f0b4c36e8.png

63f1c996b716224f6e719303b7e65c9.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.

效果演示

b7c3b6b0039f81f8001cfe994262a89.png

b4f670a8796fe44890d5fe1cf70699b.png


修改多条数据语句

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.

效果演示

1c672bf7734af77390bb35393e8ac2d.png

783557806932569502fd792b70b322f.png



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

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

效果演示

889f87450a907ba046c8a8e415aeb00.png

85e6cb7294c9e0900816f211723a1cd.png




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.

效果演示

8bfb2f8077fcc67216658b38ceacea6.png

7c92fcfd949989241346b3ba530b698.png



删除多条数据

DELETE FROM <target> WHERE <cond>.

案例代码演示

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

效果演示

dc29df882235907dff875fbc5d3860d.png

e7eb298243582c9481c1c2e89decdb7.png



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.

效果演示

6f945ac27f299af83764932cfad3037.png

c201a6c9409edefbeee40b0c5ac93b2.png



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

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.

效果演示

afe39b3c4d9c76090059a9036304417.png

212cdad36f10c7a999a695ad1fdd84a.png



插入/更新多条数据

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.

效果演示

7c84e1584275fed46780655bb20b77a.png

492926f6608d3b451c57243a16e3030.png



目录
相关文章
SAP ABAP 程序调用设置成后台作业模式
ABAP 程序调用设置成后台作业模式
516 0
SAP ABAP 内表排序 动态字段排序
对于动态内表排序引用ABAP_SORTORDER_TAB
292 0
|
SQL 设计模式 前端开发
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
1578 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
|
SQL
SAP ABAP-OPENSQL-数值函数简介
S4中针对OPENSQL新提供一些函数
139 0
|
SQL
SAP ABAP-OPENSQL-字符串函数介绍
S4中SQL新语法字符串函数
209 0
|
SQL
SAP ABAP-OPENSQL-日期/时间戳函数
S4提供针对OPENSQL一些新的SQL函数调用,本文展示相关函数的使用
649 0
SAP ABAP-删除工序示例代码
ABAP-删除工序示例代码
171 0
SAP ABAP 检查事务码权限
检查用户是否有自开发事务码的权限
157 0
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
225 0
SAP ABAP字符串拼接保留空格
字符串操作保留空格
1083 0