数据操作语言 (DML) 语句

数据操作语句(DML)语句在已存在的模式对象进行访问和操作数据。DML语句不会隐私提交当前事务。以下是数据操作语言语句:

CALL
DELETE
EXPLAIN PLAN
INSERT
LOCK TABLE
MERGE
SELECT
UPDATE

SELECT语句是MDL语句的有限形式,它只能在数据库中访问数据。虽然它可以在查询结果返回之前操作访问数据,但是能在数据库中操作数据存储。

CALL和EXPLAIN PLAN只在动态执行的PL/SQL才支持。所有其他DML语句在PL/SQL都完全支持。

1.常用DML语句

下面主要介绍4种DML语句:INSERT、UPDATE、DELETE和MERGE

INSERT:向表中插入一条或者多条记录。

UPDATE:更新一个表中的一行或者多行的一列或多列值。

DELETE:删除表中一行或多行记录。

MERGE:如果表中已有了指定列值的记录行,就执行更新动作。如果没有指定列值的记录,就执行一个插入动作。

2.DML语句的游标属性

Oracle允许我们通过一些特殊的隐式游标属性访问最后一次运行的隐式游标的信息。记住隐式游标属性的值总是属于最后一次执行的SQL语句,而不管隐式游标是在一个块中执行。

名字描述
SQL%FOUND如果有一行或则多行记录被成功修改(包括创建、修改、删除)返回TURE,否则返回FALSE
SQL%NOTFOUND如果DML语句没有修改任何行则返回TRUE,否则返回FALSE
SQL%ROWCOUNT返回被DML语句修改的记录行数
SQL%ISOPEN对于隐式游标(即DML语句)总是返回FALSE,因为Oracle数据库会自动打开和关闭这些游标

3.DML语句特有的PL/SQL特性

假设在执行一个UPDATE或则DELETE操作后,需要根据处理结果进行更多的处理。要实现这个目标,没必要在DML语句后面再用一个单独的查询语句,只需要在INSERT、UPDATE、DELETE或者MERGE语句中添加一个RETURNING语句,即可以直接把这些信息提取到一个变量中。使用RETURNING语句,可以减少网络上的往返交互,消耗的服务器CPU时间会更少,并把应用程序所打开和管理的游标数量最小化。

例如:

declare
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
for rec in (select * from emp e where e.deptno = 10) loop
update emp e
set e.sal = e.sal * 1.5
where e.empno = rec.empno
returning e.ename, e.sal into v_ename, v_sal;
end loop;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值