OPEN SQL
- 1. 概要
- (1)R/3体系结构
- (2)SQL定义
- (3)OPEN SQL经常使用的命令
- 2. OPEN SQL
- (1)SELECT 语句
- (2)INTO语句
- 3. FROM语句
- (1)选择静态表,用AS指定别名
- (2)选择动态表,表名要是大写字母
- (3)JOIN语句,用于多表连接
- (4)UP...TO...语句,限制查询个数
- 4. WHERE语句
- (1)WHERE条件语句
- (2)Interval条件-范围
- (3)字符串比较-LIKE语句
- (4)LIST VALUE-IN语句
- (5)SELECTION TABLE
- (6)动态条件
- (7)FOR ALL ENTRIES语句
- 5. GROUPING-GROUP BY语句
- 6. SORT-ORDER BY语句
- (1)根据关键字排序
- (2)ASCENDING | DESCENDING指定升序/降序排序
- 7. SORT-ORDER BY语句
- (1)Scalar Subquery
- (2)Non-scalar Subquery
- 8. 数据修改-INSERT语句
- (1)一条数据
- (2)多条数据
- 9.数据修改-UPDATE语句
- (1)一条数据
- (2)多条数据
- 10.数据修改-DELETE语句
- (1)一条数据
- (2)多条数据
- 11.数据修改-MODIFY语句
- (1)一条数据
- (2)多条数据
1. 概要
(1)R/3体系结构
(2)SQL定义
定义:Structured Query Language,ABAP的OPEN SQL里只允许使用DML语言。
(3)OPEN SQL经常使用的命令
SY-SUBRC返回成功与否,SY-DBCNT返回数据的个数。
2. OPEN SQL
(1)SELECT 语句
当查询一条数据时:
当查询多条数据时:
INTO保存到字段或者结构体时,相当于在LOOP循环中执行SELECT语句:
AS指定别名:
动态SELECT语句:
(2)INTO语句
查询一条数据:
使用结构体,用CORRESPONDING FIELDS OF语句会自动找到相同字段名匹配赋值。
查询多条数据:
往内表插入数据时用APPENDING,不能使用INTO。
PACKAGE SIZE:指定每次追加到内表里的数据件数,需要使用ENDSELECT语句。
Single Field
3. FROM语句
用FROM语句指定要查询数据的相应数据库表(或视图)。
(1)选择静态表,用AS指定别名
(2)选择动态表,表名要是大写字母
(3)JOIN语句,用于多表连接
使用JOIN语句时若不指定JOIN类型,则默认是INNER JOIN。
分类:INNER JOIN
OUTER JOIN
LEFT JOIN
RIGHT JOIN
(4)UP…TO…语句,限制查询个数
4. WHERE语句
(1)WHERE条件语句
(2)Interval条件-范围
需要在条件中追加范围值时使用此语句。
(3)字符串比较-LIKE语句
比较字符串时使用LIKE语句。
(4)LIST VALUE-IN语句
使用IN语句可以取得符合多种情况的数据。
(5)SELECTION TABLE
使用IN语句可以查询存储在Selection Table,Range变量里的数据。
(6)动态条件
可以动态地写SELECT语句的WHERE条件。
(7)FOR ALL ENTRIES语句
用FOR ALL ENTRIES语句连接内表。
5. GROUPING-GROUP BY语句
主要用于使用Aggregate函数前分组用GROUP BY语句进行分组。
HAVING语句是用GROUP BY语句时的查询条件。
注:GROUP BY之后需要写入除了聚合函数之外的所有其他字段。最后结果的数量是分组的数量。
6. SORT-ORDER BY语句
(1)根据关键字排序
(2)ASCENDING | DESCENDING指定升序/降序排序
7. SORT-ORDER BY语句
(1)Scalar Subquery
用于在WHERE语句中追加特殊条件,只能指定一个字段。
(2)Non-scalar Subquery
当存在Subquery查询的数据时返回TRUE,不存在时返回FALSE,使用EXISTS语句实现。
8. 数据修改-INSERT语句
(1)一条数据
往数据库表中追加一行数据时使用的语句。
若想使用INSERT 语句,要事先以TABLES:形式定义结构体。
(2)多条数据
往数据库表中一次性插入内表的所有值,由于插入相同主键的数据时会发生语法错误,因此要使用ACCEPTING DUPLICATE KEYS语句。
9.数据修改-UPDATE语句
(1)一条数据
往数据库表中修改一行数据时使用的语句。
若想使用UPDATE 语句,要事先以TABLES:形式定义结构体。
(2)多条数据
往数据库表中修改多行数据时使用的语句。
可以用UPDATE SET 字段1 字段2的形式修改指定字段。
10.数据修改-DELETE语句
(1)一条数据
往数据库表中删除一行数据时使用的语句。
若想使用DELETE 语句,要事先以TABLES:形式定义结构体。
(2)多条数据
可以一次性删除内表中符合WHERE条件的所有值。
11.数据修改-MODIFY语句
(1)一条数据
往数据库表中插入/更新一条数据时使用的语句。
若想使用MODIFY 语句,要事先以TABLES:形式定义结构体。
(2)多条数据
可以一次性修改或追加内表的所有值。