目录
数据定义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 语句中定义。