zoukankan      html  css  js  c++  java
  • ABAP之SQL操作(select、insert、update、delete、modify)

    一、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.

    lines:single

    读取一条数据:.

    SELECT SINGLE <cols> ... WHERE

    注意:限制好where条件,否则返回任意一条数据,与预期结果不同.

    DISTINCT :删除重复值。

    SELECT [DISTINCT]<cols>...WHERE   

    当INTO 为字段或者结构体时,结尾必须加上ENDSELECT;如果是内表则不需要。

    AS<alias>:别名

    SELECT  <cols> [AS <cols>]..

    INTO语句:

    1. [CORRESPONDING FIELDS OF]<wa>:自动给相同字段名匹配赋值。wa为结构体,变量,查询一条数据时,常用语loop循环中。

    SELECT  ...INTO [CORRESPONDING FIELDS OF]<wa> .

    2.内表

    查询多条数据是使用内表,须使用APPENDING,不能使用INTO,INTO是删除内表数据后插入时使用的。

     SELECT ...INTO|APPEND [CORRESPONDING FIELDS OF]<wa> TABLE<itab>[PACKAGE SIZE<n>]..

    PACKAGE SIZE:表示每次追加到内表的条数,此时须使用ENDSELECT.

      SELECT INTO CORRESPONDING FIELDS OF TABLE itab 
        PACKAGE SIZE 5
        FROM SPFLI.
      ENDSELECT.

    FROM语句:

    1.选择静态表:

     SELECT ...FROM <dbtab>[AS <alias>]<options>

    2.JOIN语句

    SELECT ...FROM <tab>[INNER] JOIN <dbtab> [AS <alias>] ON <cond><options>...

    3.限制查询个数

    SELECT ...FROM <tab> UP TO <n> ROWS...

    WHERE语句:

    1.where条件语句

    SELECT ...WHERE <s> <opertor> <f> ...

    2.常用语句

      SELECT ...WHERE <s> [NOT]BETWEEN <f1> AND <F2>.
      SELECT ...WHERE COL2 LIKE '_ABC%'.
      SELECT ...WHERE <s> [NOT]IN (<f1>,..,<fn>)...
      SELECT ...WHERE <s> [NOT]IN <seltab>... 查询存在selection table,Range变量里的数据。

    3.FOR ALL ENTRIES 语句.

    SELECT ... FOR ALL ENTRIES IN <itab> WHERE <cond>    

    GROUP :   

    SELECT <f1> <f2> <agg>...
        GROUP BY <f1> <f2> ...
        HIVING <condition>.

    ORDER BY:

      -根据标的key值进行排序。
      -只适合于SELECT * 语句。
      -在JOIN语句和视图中无法使用。

    SELECT ...
      ORDER BY <f1> [ASCENDING|DESCENDING] 
               <f2> [ASCENDING|DESCENDING] 

    二、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.

    三、UPDATE

    一条数据    

    UPDATE <target> FROM <wa>.  "表结构相同

    多条数据.

    UPDATE <target> FROM TABLE <itab>. 
    UPDATE <target> SET <set1> <set2> WHERE <cond>.

    四、DELETE

    一条数据    

    DELETE <target> FROM <wa>.  "表结构相同

    多条数据.

    DELETE  FROM <target> WHERE <cond>. 

    五、MODIFY.

    一条数据    

    MODIFY <target> FROM <wa>.  "表结构相同

    多条数据.

    MODIFY   <target> FROM TABLE <itab>. 
  • 相关阅读:
    阿里巴巴java开发手册学习
    策略模式
    windows常用技巧
    nginx学习
    Tomcat入门
    ThreadPoolTaskExecutor的简单使用
    linux服务器测试性能
    HAProxy1.5.x tcp example
    Haproxy开启日志
    Fix rpmdb: Thread died in Berkeley DB library
  • 原文地址:https://www.cnblogs.com/zs-chenkang/p/13258528.html
Copyright © 2011-2022 走看看