数据 更新 插入 删除

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 <dbtab>.
MODIFY <dbtab> FROM TABLE <itab>.

MODIFY itab [FROM wa] [INDEX idx] [TRANSPORTING f1 f2 ...].   “如果内表包含的行数少于idx,则不更改任何行.

MODIFY TABLE itab FROM wa [TRANSPORTING f1 f2 ...].    “根据工作区wa中关键词修改内表行, TRANSPORTING表示修改指定字段值.

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 <fs>] INDEX idx.   ”通过索引读取内表中的单行数据. ASSIGNING表表示指派给字段符号.

②READ TABLE itab FROM structure [INTO wa|ASSIGNING <fs>].”

读取与结构相同的工作区中的关键词内容全部相同的内表数据.

③READ TABLE itab WITH TABLE KEY field1 = v1 ... field2 = v2 [INTO wa|ASSIGNING <fs>].  “指定所有关键词值,并读取相等时内表行.

④READ TABLE itab WITH KEY field1 = v1 ... field2 = v2 [INTO wa|ASSIGNING <fs>]. “读取内表中字段fieldn(不一定是表关键词段)与值vn相同时的内表行.


5.DELETE(删除操作)
DELETE FROM <dbtab> WHERE <condition>.
DELETE FROM <dbtab>.
DELETE <dbtab> FROM TABLE <itab>.

DELETE itab INDEX idx.        “根据索引删除内表行.

DELETE TABLE itab FROM wa.    “根据工作区关键词删除行.

DELETE TABLE itab WITH TABLE KEY field1 = v1 ... field2 = v2. “根据关键词删除行.

DELETE itab [FROM n1] [TO n2] [WHERE <condition>].

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 <dbtab> [CLIENT SPECIFIED] FROM <wa>."从数据表中删除与<wa>中主键相同的行。

DELETE <dbtab> [CLIENT SPECIFIED]."从数据库删除主键与表工作区<dbtab>中指定主键相同的行。

例:

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 <dbtab> [CLIENT SPECIFIED] WHERE <conditions>.

使用内表删除多行语法:

DELETE <dbtab> [CLIENT SPECIFIED] FROM TABLE <itab>."如果已处理了内表中所有行,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‘.

APPEND ITAB.

ITAB-CARRID = ‘LH‘. ITAB-CONNID = ‘1245‘.

APPEND ITAB.

ITAB-CARRID = ‘AA‘. ITAB-CONNID = ‘4574‘.

APPEND ITAB.

DELETE SPFLI FROM TABLE ITAB.

原文地址:https://www.cnblogs.com/moqi222/p/11751392.html

时间: 2024-08-01 10:44:46

数据 更新 插入 删除的相关文章

MySQL必知必会——更新和删除数据

** 更新(修改)表中的数据,使用UPDATE语句.** 可采用两种方式使用UPDATE: ? 更新表中特定行: ? 更新表中所有行. 基本的UPDATE语句由3部分组成,分别是: ? 要更新的表: ? 列名和它们的新值: ? 确定要更新行的过滤条件. 简单例子.客户10005现在有了电子邮件地址,因此他的记录需要更 UPDATE customers SET cust_email = '[email protected]' WHERE cust_id = 10005; 更新更多列: UPDATE

mysql 数据插入、更新、删除

(1).数据插入insert 语法:insert into 表名 (字段名称1, 字段名称2,n,)values('值1','值2','值3') 举例说明: create table gonda( user_id int, user_name varchar(15), old int, address varchar(50)); 标准数据插入: insert into gonda(user_id,user_name,old,address) values('111','alvin','2000'

Ado.Net基础拾遗二:插入,更新,删除数据

插入数据 1 public void InsertDataToSQL() 2 { 3 string conStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; 4 SqlConnection conn = new SqlConnection(conStr); 5 conn.Open(); 6 7 SqlCommand cmd = new SqlCommand

MySQL插入、更新、删除数据

1.插入数据:由于下表的id会自增,故赋值null. 注意:字符串用'   '单引号,不能双引号,英文状态下. 可以写上部分属性名进行插入操作,如bookTypeId没写,默认NULL. 也可以写上所有的属性名进行插入操作: 同时插入多条数据,重点是:VALUES(),(),(),.....(); ======================================================== 2.更新数据 单条更新前: 单条更新后:(属性名之间用英文的逗号隔开) 多条更新之前:

mySQL教程 第5章 插入 更新与删除数据

第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不用指定列 其中的into可以省去 insert into TStudent values ('00008','白安','男','132302197604044565','19760404', '[email protected]','JAVA','20120803')

FireDAC 下的 Sqlite [5] - 数据的插入、更新、删除

先在空白窗体上添加: TFDConnection.TFDPhysSQLiteDriverLink.TFDGUIxWaitCursor.TFDQuery.TDataSource.TDBGrid(并在设计时关联好).你也可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成以上的添加过程:object DBGrid1: TDBGrid Left = 16 Top = 88 Width = 361 Height = 329 DataSource = DataSource1 TabOrder =

SQL Server编程必知必会(插入/删除/更新数据,视图) -- (80-85 点总结)

------------------------插入数据------------------------- 80.1. 插入完整的行-- 各个列必须以他们在表定义中出现的次序填充INSERT INTO customersVALUES ('Pep E. LaPew','100 Main Street','LOS Angeles','CA','90046','USA',NULL,NULL) -- INSERT 语句的安全操作方法,指定列, INTO 关键字是可选的INSERT INTO custom

插入、更新、删除数据

一.插入数据 二.更新数据 三.删除数据

php+mysqli实现批量执行插入、更新及删除数据的方法

本文实例讲述了php+mysqli实现批量执行插入.更新及删除数据的方法.分享给大家供大家参考.具体如下: mysqli批量执行插入/更新/删除数据,函数为 multi_query(). 下面的代码只是批量插入数据,事实上,插入数据.更新数据.删除数据等可以混合一起执行.查询时使用该函数,读取数据有点不太一样,具体参考如下代码: <?php //1.创建数据库连接对象 $mysqli = new MySQLi("localhost","root","