native sql -ABAP开发从入门到精通笔记

  1. Native SQL

    1. SQL概要

    1. OPEN SQL读取数据

      1. Select

Select ...

Select signle .... where.

列去重数据

Select distinct ... where...

当取多条数据时,select结果会保存到内表中。

Select ... into...语句的结果不是保存在内保中,而是保存到了wa中,这里就要加一个endselect语句。

【如果是select into wa,就要使用endselect, 在endselect前输出所有的数据记录】

同样使用as来命名别名

As

动态select,即表名或者字段名,或者条件用变量来表示

对于动态select使用(dobj)来表示

      1. Into

Into 是存储select语句查询的结果值的目的地

可以是结构体,也可以是内表,也可以是字段

结构体

当查询一条语句时,使用wa,

此时使用corresponding fields of 语句会自动找到相同字段名匹配赋值。

Select ...

Into [CORRESPONGDING FIELDS OF ] wa.

内表

Select ...

Into| APPEND   [CORRESPONGDING FIELDS OF ] TABLE gv_itab PACKAGE SIZE n...

PACKAGE SIZE n...

表示,每次只读取n调数据添加到内表中。

此时注意要用endselect。

单字段

查询表个别子弹或者使用aggregate函数时,

但前提是这两个字段不能存在空白

Select carrid connid into (gv_carrid, gv_connid) from sfligth.

      1. From

Client specified 解除自动client设置。

BY PASSING BUFFER,不会从SAP本地缓冲器中读取数据,直接访问数据库读取数据

UP TO n ROWS,限制查询的个数。

静态选择表名

动态选择表名:(dobj)

JOIN语句

Inner join 与outer join

限制查询个数

静态选择表名

Select from [AS ]

动态选择表

Select ... from (dobj)

join语句

Select ...

from

[inner] join [as alias] on [options]...

select single a~carrid b~carname

into corresponding fields of gs_str

from sflight as a

inner join scarr as b

on a~carrid EQ b~carrid

where a~carrid = 'AA'.

Inner join 与 outer join

Select ...

From

Left [outer] join [as alias]

On

限制查询个数

UP TO ROWS

Select ... from UP TO ROWS.

      1. Where

EQ  =

NE  <>    ><

LT    <

LE    ≤

GT    >

GE    ≥

范围

WHERE  s  [not] between AND

字符串比较

Like

List value

[not] In ()

动态条件

将条件拼接为一个字符串,然后再where条件中,动态调用这个字符串变量

For all entries

Select ... for all entries in

Where

For all entries 与select的嵌套语句和子查询功能类似,

使用时,where语句中的条件必须是itab中存在的字段

      1. Grouping

Select ...

Group by

Avg, count, max, min, stddev, sum

Group by 也可以动态指定。

Having,在group by之后的条件选择。

      1. Order by

Order by primary key [descending| ascending]

      1. Subquery

就是在select中嵌套select。

    1. OPEN SQL修改数据

      1. Insert

INSERT INTO VALUES .

INSERT FROM .

INSERT FROM TABLE [ACCEPTIONG DUPLICATE KEYS].

这个语句是为了避免插入相同主键的数据是报错dump error

      1. Update

UPDATE INTO .

UPDATE FROM .

UPDATE FROM TABLE .

UPDATE SET WHERE .

      1. Delete

DELETE FROM .

DELETE .

DELETE FROM WHERE .

      1. Modify

MODIFY即有update的功能也有insert的功能,当数据库中表存在该值的时候刽update,不存在的时候,会insert

MODIFY .

MODIFY FROM .

MODIFY FROM TABLE .

    1. NATIVE SQL

优点:可以直接访问数据库的表,可以实现OPENSQL中无法实现的sql

EXEC SQL.

ENDEXCE.

你可能感兴趣的:(sql,笔记,数据库)