欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle数据库DML语句讲解

程序员文章站 2022-04-21 20:43:38
INSERT INSERT命令可以插入一行,或者插入由SELECT语句创建的行集合。 若不指定哪个值插入哪一列,就会依赖位置表示法。 良好的编程习惯是不使用位置表示法。 U...

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语句失败

语法错误

引用不存在的对象或者列

访问权限

约束违背

空间问题