資料 更新 插入 刪除

2022-07-01 04:57:07 字數 3852 閱讀 4050

1.update實現對資料的更新操作,語法如下:

①.更新單行資料:

update dbtab set f1=g1 ... fn=gn where .

f表組建欄位名,g為新設定的值,where為確保只更新單行。

注:除f=g外還可 f=f+g、f=f-g

通過工作區更改單行資料:update dbtab from wa.

.更新多行資料:

update dbtab set f1=g1 ... fi=gi [where ].

也可以使用set和where子句同時更新多行資料值;此外不需要在where中限定所有表關鍵字,該語句本身將更新所有滿足條件的資料條目,若不是用where子句,則將更新當前資料集團中的所有資料行。

注:如果至少有一行資料被更新sy-bubrc返回0,否則返回4。

2.insert(插入資料

)

①.插入單行資料:

insert into dbtab values wa.

insert into dbtab from wa.

wa為工作區,是與資料庫具有相同結構的資料物件,一般直接基於資料庫結構宣告。該語句也可以將資料插入檢視中,首先該檢視所有字段必須來自同乙個資料庫表,而且在資料字典中的maintenance status屬性必須設定為read and change

注:如果相同表關鍵字的資料條目已經存在,則不能重新插入,只能對非關鍵字進行更改(update,modify)

②.插入多行資料

insert dbtab from tables itab.

其中itab是內錶,包含希望插入的資料條目。

注:內錶應與資料庫的行結構一致。

所有條目成功插入,則sy-subrc返回0

使用accepting duplicate可避免該錯誤。

insert dbtab from table itab accepting duplicate keys. 

accepting duplicate的效果是:若出現關鍵字相同,返回4,並跳過其再更新所有的其他。

3.modify操作

modify操作是用於修改資料庫中的資料。與update操作不同的是,如何表中不存在符合條件的資料時會新增一樣新資料。也就是說modify擁有  insert 和 update的操作動作

。不過通過modify修改的資料效率比較低下,遠不如update和insert操作。語法如下:

沒有賦值的字段,modify會預設為空更新上去。

modify .

modify from table .

modify itab [from wa] [index idx] [transporting f1 f2 ...].   「如果內錶包含的行數少於idx,則不更改任何行.

modify itab from wa transporting f1 f2 ... where condition.   「修改符合where子句中條件的內錶中的指定字段值.

modify語句是sap的open sql中專有語句,該語句相當於insert和update語句的結合。引入期的原因是當更新資料庫操作時,並不確知資料庫中是否遺憾相應的資料行。

①.修改內錶的一行

:modify 表itab from 工作區wa_ 

transporting field1 field2.---- where 條件1 and 條件2. 

*例子 :

modify it_so_data from lv_so_data transporting edat 

where vbeln = lv_deli_week-vbeln and posnr = lv_deli_week-posnr.  

②.修改內錶的多行

:modify 表itab from 工作區wa_ index 行號 transporting  field1 field2---.

*例子 :

modify  it_pp_info  from  lv_pp_info  index  lv_index  transporting sernr.

4.read操作(可用於任何型別內錶

)

①read table itab [into wa|assigning ] index idx.   」通過索引讀取內錶中的單行資料. assigning表表示指派給字段符號.

②read table itab from structure [into wa|assigning ].」

5.delete(刪除操作

)

delete from where .

delete from .

delete from table .

delete itab index idx.        「根據索引刪除內錶行.

delete itab [from n1] [to n2] [where ].

delete adjacent duplicates from itab 和

delete adjacent duplicates from itab comparing all fields還是有區別的:

前者相鄰兩行資料,如果除金額字段以外的其他欄位都相同,則去重複刪除其中一行;

後者相鄰兩行資料,如果所有對應的字段都相同(包含金額字段),則去重複刪除其中一行。

collect語句也有類似的功能,除了金額型字段外其他的字段內容相同,則去掉相同行並把相同行的金額值累加到留下來的一行。

delete from dbtab where .

delete dbtab[client specified] from table itab.

注:返回值同modify

兩種形式:1).通過內錶刪除多行資料條目的過程中將內錶置為空;2).使用where field like '%'。

刪除單行:

delete [client specified] from ."從資料表中刪除與中主鍵相同的行。

delete [client specified]."從資料庫刪除主鍵與表工作區中指定主鍵相同的行。

例:tables spfli.

data wa like spfli.

wa-carrid = 'aa'.

wa-connid = '0064'

delete spfli from wa.

spfli-carrid = 'lh'.

spfli-connid = '0017'.

delete spfli.

刪除多行語法:delete from [client specified] where .

使用內錶刪除多行語法:

delete [client specified] from table ."如果已處理了內錶中所有行,sy-subrc置為0.否則為4.如內表為空,sy-subrc和sy-dbcnt都為0.

例:tables spfli.

data itab like spfli occurs 10 with header line.

itab-carrid = 'ua'. itab-connid = '0011'.

itab-carrid = 'lh'. itab-connid = '1245'.

itab-carrid = 'aa'. itab-connid = '4574'.

delete spfli from table itab.

資料插入更新刪除

insert into 表名 values 值1,值2 insert into student id,name,age,email value 1 張三 18 男 zhangsan 163.com insert into 表名 欄位名1 欄位名2 value 值1,值2 insert into 表名...

插入更新刪除資料

插入資料 insert into mytable id,name,age values 1,xxiang,23 從別的表中資料插入到mytable中 insert into my id,name,age select id,name,age from othertable 從別的表中資料插入到新的表...

插入 刪除和更新資料

定義乙個需要訪問的資料庫的資訊 string strcon server pc 20161029wdcv sql2014 database studentdb trusted connection true sqlconnection con new sqlconnection strcon con...