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