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



目录
相关文章
|
18天前
|
SQL 关系型数据库 数据库
|
2月前
|
SQL 数据库
零基础学习数据库SQL语句之操作表中数据的DML语句
零基础学习数据库SQL语句之操作表中数据的DML语句
28 0
零基础学习数据库SQL语句之操作表中数据的DML语句
|
2月前
|
SQL 关系型数据库 MySQL
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
113 1
|
3月前
|
SQL 负载均衡 监控
SAP ABAP DBSQL_SQL_ERROR 错误
SAP ABAP DBSQL_SQL_ERROR 错误
|
3月前
|
SQL 关系型数据库 MySQL
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)
|
3月前
|
SQL 应用服务中间件 数据库
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
|
3月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
3月前
|
SQL 数据库 数据处理
什么是 ABAP SQL Function
什么是 ABAP SQL Function
什么是 ABAP SQL Function
|
3月前
|
SQL 数据库 存储
关于 ABAP OPEN SQL 中的 FLPT 数据类型
关于 ABAP OPEN SQL 中的 FLPT 数据类型
|
3月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍