0
点赞
收藏
分享

微信扫一扫

SAP入门技术分享三:OPEN SQL


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体系结构

SAP入门技术分享三:OPEN SQL_数据

(2)SQL定义

  定义:Structured Query Language,ABAP的OPEN SQL里只允许使用DML语言。

SAP入门技术分享三:OPEN SQL_SQL_02


SAP入门技术分享三:OPEN SQL_mysql_03

(3)OPEN SQL经常使用的命令

SAP入门技术分享三:OPEN SQL_数据库_04


SY-SUBRC返回成功与否,SY-DBCNT返回数据的个数。

2. OPEN SQL

SAP入门技术分享三:OPEN SQL_SQL_05

(1)SELECT 语句

SAP入门技术分享三:OPEN SQL_mysql_06


当查询一条数据时:

SAP入门技术分享三:OPEN SQL_SQL_07


当查询多条数据时:

SAP入门技术分享三:OPEN SQL_数据_08


INTO保存到字段或者结构体时,相当于在LOOP循环中执行SELECT语句:

SAP入门技术分享三:OPEN SQL_mysql_09


AS指定别名:

SAP入门技术分享三:OPEN SQL_数据库_10


动态SELECT语句:

SAP入门技术分享三:OPEN SQL_sql_11

(2)INTO语句

查询一条数据:

  使用结构体,用CORRESPONDING FIELDS OF语句会自动找到相同字段名匹配赋值。

SAP入门技术分享三:OPEN SQL_数据_12


查询多条数据:

  往内表插入数据时用APPENDING,不能使用INTO。

SAP入门技术分享三:OPEN SQL_sql_13


PACKAGE SIZE:指定每次追加到内表里的数据件数,需要使用ENDSELECT语句。

Single Field

SAP入门技术分享三:OPEN SQL_sql_14


3. FROM语句

  用FROM语句指定要查询数据的相应数据库表(或视图)。

SAP入门技术分享三:OPEN SQL_数据库_15


SAP入门技术分享三:OPEN SQL_mysql_16

(1)选择静态表,用AS指定别名

SAP入门技术分享三:OPEN SQL_数据_17

(2)选择动态表,表名要是大写字母

SAP入门技术分享三:OPEN SQL_数据_18

(3)JOIN语句,用于多表连接

SAP入门技术分享三:OPEN SQL_SQL_19


使用JOIN语句时若不指定JOIN类型,则默认是INNER JOIN。

分类:INNER JOIN

OUTER JOIN

LEFT JOIN

RIGHT JOIN

(4)UP…TO…语句,限制查询个数

SAP入门技术分享三:OPEN SQL_SQL_20



4. WHERE语句

(1)WHERE条件语句

SAP入门技术分享三:OPEN SQL_mysql_21


SAP入门技术分享三:OPEN SQL_数据库_22

(2)Interval条件-范围

  需要在条件中追加范围值时使用此语句。

SAP入门技术分享三:OPEN SQL_SQL_23

(3)字符串比较-LIKE语句

  比较字符串时使用LIKE语句。

SAP入门技术分享三:OPEN SQL_sql_24

(4)LIST VALUE-IN语句

  使用IN语句可以取得符合多种情况的数据。

SAP入门技术分享三:OPEN SQL_SQL_25

(5)SELECTION TABLE

  使用IN语句可以查询存储在Selection Table,Range变量里的数据。

SAP入门技术分享三:OPEN SQL_数据_26

(6)动态条件

  可以动态地写SELECT语句的WHERE条件。

SAP入门技术分享三:OPEN SQL_数据库_27

(7)FOR ALL ENTRIES语句

  用FOR ALL ENTRIES语句连接内表。

SAP入门技术分享三:OPEN SQL_SQL_28


SAP入门技术分享三:OPEN SQL_sql_29


SAP入门技术分享三:OPEN SQL_数据_30


5. GROUPING-GROUP BY语句

  主要用于使用Aggregate函数前分组用GROUP BY语句进行分组。

SAP入门技术分享三:OPEN SQL_sql_31


SAP入门技术分享三:OPEN SQL_sql_32


  HAVING语句是用GROUP BY语句时的查询条件。

SAP入门技术分享三:OPEN SQL_sql_33


注:GROUP BY之后需要写入除了聚合函数之外的所有其他字段。最后结果的数量是分组的数量。

6. SORT-ORDER BY语句

(1)根据关键字排序

SAP入门技术分享三:OPEN SQL_mysql_34

(2)ASCENDING | DESCENDING指定升序/降序排序

SAP入门技术分享三:OPEN SQL_sql_35


7. SORT-ORDER BY语句

(1)Scalar Subquery

  用于在WHERE语句中追加特殊条件,只能指定一个字段。

SAP入门技术分享三:OPEN SQL_mysql_36


SAP入门技术分享三:OPEN SQL_sql_37


SAP入门技术分享三:OPEN SQL_数据库_38

(2)Non-scalar Subquery

  当存在Subquery查询的数据时返回TRUE,不存在时返回FALSE,使用EXISTS语句实现。

SAP入门技术分享三:OPEN SQL_sql_39


8. 数据修改-INSERT语句

(1)一条数据

  往数据库表中追加一行数据时使用的语句。

SAP入门技术分享三:OPEN SQL_mysql_40


  若想使用INSERT 语句,要事先以TABLES:形式定义结构体。

SAP入门技术分享三:OPEN SQL_数据_41

(2)多条数据

  往数据库表中一次性插入内表的所有值,由于插入相同主键的数据时会发生语法错误,因此要使用ACCEPTING DUPLICATE KEYS语句。

SAP入门技术分享三:OPEN SQL_数据库_42


9.数据修改-UPDATE语句

(1)一条数据

  往数据库表中修改一行数据时使用的语句。

SAP入门技术分享三:OPEN SQL_SQL_43


  若想使用UPDATE 语句,要事先以TABLES:形式定义结构体。

SAP入门技术分享三:OPEN SQL_数据_44

(2)多条数据

  往数据库表中修改多行数据时使用的语句。

SAP入门技术分享三:OPEN SQL_SQL_45


  可以用UPDATE SET 字段1 字段2的形式修改指定字段。

SAP入门技术分享三:OPEN SQL_数据库_46


10.数据修改-DELETE语句

(1)一条数据

  往数据库表中删除一行数据时使用的语句。

SAP入门技术分享三:OPEN SQL_数据_47


  若想使用DELETE 语句,要事先以TABLES:形式定义结构体。

SAP入门技术分享三:OPEN SQL_数据库_48

(2)多条数据

  可以一次性删除内表中符合WHERE条件的所有值。

SAP入门技术分享三:OPEN SQL_数据库_49


11.数据修改-MODIFY语句

SAP入门技术分享三:OPEN SQL_SQL_50

(1)一条数据

  往数据库表中插入/更新一条数据时使用的语句。

SAP入门技术分享三:OPEN SQL_数据_51


  若想使用MODIFY 语句,要事先以TABLES:形式定义结构体。

SAP入门技术分享三:OPEN SQL_sql_52

(2)多条数据

  可以一次性修改或追加内表的所有值。

SAP入门技术分享三:OPEN SQL_sql_53



举报

相关推荐

0 条评论