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
网友评论