oracle数据库DML语句讲解

INSERT

INSERT命令可以插入一行,或者插入由SELECT语句创建的行集合。

若不指定哪个值插入哪一列,就会依赖位置表示法。

良好的编程习惯是不使用位置表示法。

UPDATE

用来改变已经存在的行。

影响一行或者行集合。

影响集合的 范围由WHERE子句确定。

单个更新命令不能影响多个表中的行。

UPTDAE命令遵循表定义的所有约束。

DELETE

依据WHERE子句从表中删除一行或一组行。

没有WHERE子句就会删除表中所有行。

TRUNCATE

DDL,不是用户事务。

表中有任何活动的DML命令,DDL命令都会失败。

重置高水位线。

表的物理位置是保存在数据字段中表的定义的一部分。表创建时数据文件给表分配了固定空间。数据字典通过高水位线来跟踪空间使用多少,以下被使用,以上未被使用,重置高水位线到最初空间的开头,产生删除所有行的效果。

MERGE

如果源数据(表、视图、子查询)中的行已经存在于目标表,那么可以更新( UPDATE )目标行,或者取代它,或者保持目标不变。如果源数据中的行不在目标表中,那么可以插入(INSERT)它。

传递一次源数据,实现三种操作。

UPDATE或INSERT子句是可选的。

UPDATE子句后面可以跟DELETE子句来去除一些不需要的行。

UPDATE和INSERT子句可以加WHERE子句。

INSTER ALL

使用一条语句将多行插入多个表。

通过一次源数据,填充多个表,减轻数据库负担。

WITH

可认为在真正进行查询之前预先构造了一个临时表TT,之后便可多次使用它做进一步的分析和处理。

增加了SQL的易读性,如果构造了多个子查询,结构会更清晰;更重要的是:“一次分析,多次使用”,这也是为什么会提升性能的地方,达到了“少读”的目标。

DML语句失败

语法错误

引用不存在的对象或者列

访问权限

约束违背

空间问题

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐