sap-abap 基础5-数据库操作

7 篇文章 0 订阅
本文详细介绍了ABAP中的SQL语言,包括SELECT的基本写法、动态SQL、包大小控制,以及INSERT、UPDATE、DELETE、MODIFY等DML操作的用法。同时提到SQL的新语法特性,如无需预定义内表的直接定义。
摘要由CSDN通过智能技术生成

目录

一、select操作

基本写法

动态sql语句 

package size 指定读取包大小

二、insert

 基本写法

into 和 append

三、update

基本写法

四、delete

五、modify

六、SQL新语法



sql从功能上包含三部分: 数据定义,数据操纵,数据控制

数据定义DDL:create ,alter,srop

数据操作DML: INSERT UPDATE DELETE

数据控制DCL:grant revoke

abap中使用的是自己的 open sql,只有dml语言。

一、select操作

基本写法

SELECT <lines>[DISTINCT]<columns>[AS<alias>]
          INTO|APPEND [CORRESPONDING FIELDS OF]<wa> TABLE<itab>[PACKAGE SIZE<n>]..
          FROM <dbtab>[AS <alias>]<options>  UP TO <n> ROWS...
            [INNER]JOIN <dbtab> [AS <alias>] ON <cond><options>...
          WHERE <s> <opertor> <f> ...
          GROUP BY <f1> <f2>..
          HIVING <condition>.
          ORDER BY PRIMARY KEY.。

只读一条可以读到结构或内表中 select single 

读多条可以读到内表 select  [distinct] <cols> into table it_tab .

动态sql语句 

     语句变量char类型,最长72位,如果超过可以使用table 

    

package size 指定读取包大小

此时要加endselect

二、insert

 基本写法

     

一条数据    

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

多条数据.

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

插入数据时,避免有相同主键引起dump error错误,使用ACCEPTING DUPLICATE。此时sy-subrc返回4.

into 和 append

  

Into 是清空后写入

Appending是追加

三、update

基本写法

       更新单行 update dbtab from wa 。 根据表关键字段更新所有非关键字的值 。

       更新多条 update dbtab set f1 = v1 f2 =v2 where 

                     update dbtab from table itab

四、delete

    删除单条

      delete dbtab from wa

  删除多行

    delete dbtab from table itab

    delete from dbtab wherre

删除所有

   delete from dbtab

  内表置空

 where like ‘%’

五、modify

  abap的modify = update + insert,如果已有更新,没有的话插入 。

 更新单条: Modify dbtab from wa

更新多条:modify dbtab from table itab

更新内表:

     在循环时   loop at itab into wa 

                             wa-line = new 。

                          modify itab from wa 。

                       endloop .

    在循环外  Modify itab from wa  indec idx  .

  

六、SQL新语法

可以不用提前定义内表和结构,直接在select 语句中定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值