「SAP ABAP」OPEN SQL的DML语句你了解多少 (附超详细案例讲解)
创始人
2025-05-28 06:01:43
0

在这里插入图片描述

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


💅文章概要: 各位小伙伴们大家好呀!今天继续SAP ABAP系列文章的讲解,本节带来的内容是OPEN SQL中DML语句的介绍,希望大家喜欢!


🤟每日一言: 永远年轻,永远热泪盈眶!

目录

  • 前言
  • DELETE语句介绍
    •  删除单条数据
      •   使用结构体变量删除单条数据
      •   使用WHERE子句删除单条数据
    •  删除多条数据
      •   使用WHERE子句删除多条数据
  • MODIFY语句介绍
    •  操作单条数据
      •   使用结构体变量操作单条数据
      •   使用内表操作单条数据
    •  操作多条数据
      •   使用内表操作单条数据
  • 写在最后的话


前言

在这里插入图片描述

  各位小伙伴们大家好呀!今天继续SAP ABAP系列文章的讲解,本节继续讲解OPEN SQL中的DML语句,本节内容涉及到DELETE语句和MODIFY语句,希望大家喜欢!


DELETE语句介绍

在这里插入图片描述

  ABAP DELETE语句用于操作删除数据库表中的数据。

PS:DELETE语句不支持使用内表来进行数据的删除!

 删除单条数据


  以下是删除单条数据的一般语法样式:

DELETE FROM  WHERE .
DELETE  FROM .

参数介绍:

  • 是要删除数据的数据库表的名称。
  • :存放待删除数据的结构体变量(工作区)。
  • :WHERE字句限定条件

  使用结构体变量删除单条数据

  下面给出一段以SFLIGHT数据库表为基准的示例代码,对ABAP OPEN SQL中通过结构体变量DELETE删除单条数据进行详细的讲解,仅供参考:

DATA:gs_sflight TYPE sflight.gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-price = 1600.DELETE sflight FROM gs_sflight.

在这里插入图片描述

在这里插入图片描述

  这段代码中首先参照数据库表sflight定义了一个结构体变量,并且对结构体中的carridconnid以及price字段赋值,最后使用DELETE语句在数据库表中找寻到与该结构体变量中数据相对应的数据条目对其进行删除。

PS:删除单条数据一般通过结构体变量赋值来删除,也可以使用只有一行数据的内表来删除。

  使用WHERE子句删除单条数据

  下面给出一段以SFLIGHT数据库表为基准的示例代码,对ABAP OPEN SQL中通过WHERE子句DELETE删除单条数据进行详细的讲解,WHERE可以通过设置多种条件来删除特定的数据条目:

DELETE FROM sflight
WHERE   carrid = 'AC'AND   connid = 0820AND   price = 1600.

在这里插入图片描述
在这里插入图片描述

PS:上面介绍了两种可以实现删除单条数据的DELETE语句,它们都可以实现相同的效果!下面介绍删除多条数据的语句。

 删除多条数据

PS:删除多条数据不再支持使用结构体变量来进行删除,可以使用WHERE子句来操作数据库表数据。


  以下是删除多条数据的一般语法样式:

DELETE FROM  WHERE .

参数介绍:

  • 是要删除数据的数据库表的名称。
  • :WHERE字句限定条件

  使用WHERE子句删除多条数据

  下面给出一段以SFLIGHT数据库表为基准的示例代码,对ABAP OPEN SQL中通过WHERE子句MODIFY操作单条数据进行详细的讲解,仅供参考:

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

在这里插入图片描述
在这里插入图片描述

PS:这里的连接关键词需要用OR而不是AND! ! !


MODIFY语句介绍

在这里插入图片描述
  ABAP MODIFY语句用于操作增加或者修改数据库表中的数据。

PS:如果数据库表中不存在该条数据会增加条目,如果数据库表中存在该条数据会修改条目!

 操作单条数据


  以下是操作单条数据的一般语法样式:

MODIFY  FROM .
MODIFY  FROM TABLE .

参数介绍:

  • 是要操作数据的数据库表的名称。
  • :存放待操作数据的结构体变量(工作区)。
  • :存放待操作数据的内表。

  使用结构体变量操作单条数据

  下面给出一段以SFLIGHT数据库表为基准的示例代码,对ABAP OPEN SQL中通过结构体变量MODIFY操作单条数据进行详细的讲解,仅供参考:

* 更新旧条目
DATA:gs_sflight TYPE sflight.gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20020218'.
gs_sflight-price = 2500.
MODIFY sflight FROM gs_sflight.* 插入新条目
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20230312'.
gs_sflight-price = 2500.
MODIFY sflight FROM gs_sflight.

在这里插入图片描述

在这里插入图片描述

PS:可以看到,修改了一个旧条目,并且新增了一个新条目,都是使用MODIFY语句完成的效果。

  使用内表操作单条数据

  下面给出一段以SFLIGHT数据库表为基准的示例代码,对ABAP OPEN SQL中通过内表MODIFY操作单条数据进行详细的讲解,仅供参考:

* 更新旧条目
DATA:gs_sflight TYPE sflight,gt_sflight TYPE TABLE OF sflight.gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20020218'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.
MODIFY sflight FROM TABLE gt_sflight.* 插入新条目
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20230312'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.
MODIFY sflight FROM TABLE gt_sflight.

在这里插入图片描述

在这里插入图片描述

PS:通过使用一条数据的内表来操作数据也可以达到与结构体变量相同的效果。

 操作多条数据

MODIFY语句操作多条数据只能使用内表进行操作,不支持WHERE子句。


  以下是操作单条数据的一般语法样式:

MODIFY  FROM TABLE .

参数介绍:

  • 是要操作数据的数据库表的名称。
  • :存放待操作数据的内表。

  使用内表操作单条数据

  下面给出一段以SFLIGHT数据库表为基准的示例代码,对ABAP OPEN SQL中通过内表MODIFY操作多条数据进行详细的讲解,仅供参考:

* 更新旧条目
DATA:gs_sflight TYPE sflight,gt_sflight TYPE TABLE OF sflight.gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20020218'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.* 插入新条目
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20230312'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.
MODIFY sflight FROM TABLE gt_sflight.

在这里插入图片描述
在这里插入图片描述

  这段代码和上方使用内表MODIFY单条数据并没有太大的区别,只是删剪去了前面第一条的MODIFY语句,先向内表中插入了两条数据然后一起对数据库表进行操作。而上一段代码中是分别两次使用只有一行的内表对数据库表进行操作,它们实现的效果是一样的!


写在最后的话

  本文花费大量时间介绍了OPEN SQL中的DELETE语句和MODIFY语句的详细语法,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!

在这里插入图片描述

✨原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力!\textcolor{9c81c1}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!\textcolor{ed7976}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!\textcolor{98c091}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!

相关内容

热门资讯

不良率上升倒逼防线前移 银行收... 银行正在给个人信贷风控“上强度”。上海证券报记者近期自业内多方了解到,不少银行零售信贷业务从审批权限...
自媒体新手如何快速涨粉?这5个... 自媒体新手如何快速涨粉?这5个技巧让你少走弯路! 嗨,我是小融。 最近很多刚入门自媒体的朋友问我,怎...
乌兰察布市财政局关于黄金领域非... 乌兰察布市财政局关于黄金领域 非法金融活动风险提示 近期,黄金价格波动频繁,市场热度持续攀升,各类假...
一只鸡蛋架“直发”俄罗斯 无锡... (来源:无锡新传媒) 转自:无锡新传媒 一只3D打印塑料鸡蛋架,成为无锡国际邮件互换局正式开通运营后...
武汉楼市开启红五月 新房成交量... 原标题:武汉楼市开启红五月 数据爆表,新房成交量较去年同期翻番 武汉城建未来中心项目营销中心现场来...
一家精神病院竟现身A股公司前十... 5月8日,有投资者发现,盛通股份前十大股东名单中,竟出现了一家精神病院的身影。这家精神病院全称为“上...
真的老了!哈登心魔难除 骑士还... 哈登又拉胯了。 刚刚过去的两场东部半决赛,骑士都输的相当狼狈,而哈登的发挥更是灾难级的。 半决赛G1...
精神病院通报成上市公司前十大股... 近日,上市公司盛通股份发布一季报,披露了前十大股东名单。其中,一家名为“上饶市广丰区十五岭山精神病医...
天溯计量发布年报 上市首年检测... 转自:中国经营网 文 近日,计量检测机构天溯计量(301449.SZ)发布了2025年年度报告。年...
原创 全... 美伊真要停火了? 一页纸协议让全球油价闪崩! 就在今天,全球市场被一条消息炸开了锅。美国白宫觉得,他...
百信银行业绩:26Q1净利润大... 4月底,中信百信银行股份有限公司(下称“百信银行”)2025年财报及2026年一季度报接连披露—— ...
美光科技股价单周飙升38% 市... 【CNMO科技消息】受全球内存芯片短缺影响,美光科技股价本周大幅上涨。截至周五收盘,美光股价报746...
江西一精神病院炒股,炒成上市公... 近日,上市公司盛通股份(002599.SZ)发布一季报,披露了前十大股东名单,其中一家名为“上饶市广...
专访中国太保副总裁俞斌:从“+... 拥抱AI(人工智能),不再是保险行业的“选择题”,而是关乎企业生存与发展的“必答题”,更是企业决胜未...
多平台优化算法:美团取消超时扣... 图片来源:界面图库 5月8日,网信中国发布消息称,生活服务类平台算法治理已取得初步成效,美团、淘宝、...
原创 2... 2025年,国内系统重要性银行名单正式公布。这是我国金融体系的核心支柱,一共21家银行入选,它们是维...
东海县供销总社:“供销+龙头企... 近日,东海县供销合作总社鼎味泰直营店正式开业。作为东海县供销系统打造的新型社企便民服务网点,该门店的...
原创 阿... 深夜,一家零食店铺的客服后台弹出一条消息:“我上次买的芒果干,这次想换个不那么酸的口味,再帮我推荐几...
和平湾全新项目前瞻 负公摊、唯... 在沈阳,如果想在主城核心区域找一块容积率低于1.5的住宅用地,难度有多大? 过去三年,沈阳主城核心区...
精神病院与国际投行高盛同在 盛... 近日,盛通股份(002599.SZ)发布一季报,其前十大股东名单中,第九位为“上饶市广丰区十五岭山精...