SAP ABAP技术整理

SQL基础知识点

2022-03-11  本文已影响0人  SAP杰

SELECT

取出多条数据

取出单一一条数据

SELECT SINGLE (指定的主key, 能限定唯一一条数据 : 指定所有主键)

up to 1 rows (指定的主key, 不能限定唯一一条数据)

FOR ALL ENTRIES IN 函数MAX SUM等

SELECT 字段1

            字段2..

            字段n

    FROM db

    INTO TABLE tbl

WHERE 字段a = 条件值a

    AND字段b  = 条件值b

    OR  字段c  = 条件值c

  全字段抽出的时候,可以用*

  (适用条件:通常是表抽出字段 >20个,

    或者抽出字段个数 是全字段个数的2/3以上)

  2. 如果是向有数据的内部表中追加的话,可以使用APPENDING

  3. 可以使用ORDER BY  对取出的数据排序

  4. 可以使用 CORRESPONDING FIELDS OF (但是,需要注意字段id 必须完全一致才可以)

  5. 可以使用 UP TO n ROWS  来限定,只取出n条数据 (极少使用)

表连接

INNER JOIN(内连接)

LEFT OUTER JOIN(右表的单独条件写在结合条件中,不可写在where条件中)

CREATE:

单一条

通过内表多条一次处理 ACCEPTING DUPLICATE KEYS. 允许重复数据

INSERT :

新增单一一条数据到数据库中。

一般情况下,程序处理会有多条数据。使用单条数据插入方式的话,

优点:可以适用于部分提交 部分回滚的情况,且能将错误更清楚地表现出来

          (具体精确到是哪一条数据出错了)

  缺点:必须循环中更新数据库,效率会低下。

  语法:

    INSERT INTO target DB VALUES wa. 或

    INSERT target DB FROM wa.

新增多条数据到数据库中。

一般情况下,程序处理会有多条数据。使用单条数据插入方式的话,

  优点:  因为一次访问更新数据库 效率高

  缺点: 只能要么全部数据提交,要么全部数据回滚。

          且如若出错,无法精确到是哪一条数据出错了。

  语法:

    INSERT target DB FROM TABLE itab.  (ACCEPTING DUPLICATE KEYS )

    ACCEPTING DUPLICATE KEYS 的话,可以避免有key重复数据时候dump的发生

UPDATE:

按照where条件 多条更新

单一一条

通过内表 多条一次处理

更新单一或多条数据到数据库中。

一般情况下,程序处理会有多条数据。使用单条更新方式的话,

  优点:可以适用于部分提交 部分回滚的情况,且能将错误更清楚地表现出来

          (具体精确到是哪一条数据出错了)

  缺点:必须循环中更新数据库,效率会降低。

缺点:必须循环中更新数据库,效率会降低。

  语法:

    1. UPDATE target DB                   

              SET f1 = xxx

                    f2 = xxx

        WHERE  key1 = xxx

              and  key2 = xxx.

    2.  UPDATE target DB FROM wa

更新多条数据到数据库中。

一般情况下,程序处理会有多条数据。使用多条数据插入方式的话,

  优点:  因为一次访问更新数据库 效率高

  缺点: 只能要么全部数据提交,要么全部数据回滚。

          且如若出错,无法精确到是哪一条数据出错了。

  语法:

    UPDATE target DB From TABLE itab

DELETE:

按照where条件 多条删除

单一一条

通过内表 多条删除

删除单一或多条数据到数据库中。

语法:

1. 按条件删除

    DELETE target DB                   

      WHERE  key1 = xxx

            and  key2 = xxx.

  2.  DELETE target DB FROM wa

  3. DELETE target DB FROM itab.

第二种和第三种写法,虽然SAP是支持的。但是在实际项目中,比较少地使用。

绝大多数情况是按条件删除数据

MODIFY

创建+更新

数据库中存在KEY相同的数据,则更新;不存在,则新增。

语法:

1. MODIFY target DB  FROM wa               

2. MODIFY target DB  FROM TABLE itab .

注:实际项目中极不推荐使用MODIFY语句

数据提交和回滚

DB锁

逻辑锁

修改表之前,先尝试加锁lock

如果加锁成功(没有被其他人占用), LOCK住

如果加锁失败 ERROR

上一篇 下一篇

猜你喜欢

热点阅读