你的位置:首页 > 数据库

[数据库]Oracle_DML


DML是“数据操纵语言”( Data Manipulation Language )的简写。

如果说SELECT语句对数据进行的是读操作,那么DML语句对数据进行的是写操作
DML语句的操作对象是表中的行,这样的语句一次可以影响一行或多行数据。
DML包括三种操作:插入( INSERT )、删除(DELETE )、修改( UPDATE )。

INSERT语句

INSERT语句的作用是往表中插入一行,它的语法格式为:

INSERT INTO 表(列1 ,列2 …) VALUES (表达式1 ,表达式2 .. ) ;

在向表中插入一行时, INSERT语句将表达式的值作为对应列的值,列的排列顺序数据类型数量应该与表达式一致,否则可能会出错。
如果没有指定某个列,那么在插入数据时这个列的值将为空。
在表达式中,字符串类型数据的大小写是敏感的,日期型数据的格式在不同系统中是有区别的。

在INSERT语句中如果指定了列名,那么它们的顺序可以随意,只要与VALUES子句中的表达式一一对应即可。
如果要为所有的列都提供数据,则可以省略列名,但是VALUES 子句中表达式的顺序、数据类型和数量必须与表中列的定义一致。

在INSERT语句中为各列指定数据时,可以指定一个常量,或者指定一个表达式,如函数、算术运算表达式等。

利用INSERT语句还可以从另一个表中复制数据,这时要在INSERT语句中使用子查询,对应的语法格式为:
INSERT INTO 表1 (列1 ,列2 …)
SELECT 列 1 ,列2 ••• FROM 表2 WHERE 条件表达式;

这里的SELECT子句实际上是一个子查询。

执行这样的语句时,首先执行SELECT 子句,将返回的查询结果作为指定列的值,插入到表中。
用这种方法可以-次向表中插入多行,但是需要注意的是,表指定的各列要与SELECT子句中的各列在排列顺序、数据类型和数量上保持一致。

DELETE语句

DELETE 语句用来从表中删除指定的行,它一次可以删除一行,也可以删除多行。
DELETE语句的语法格式为:

DELETE FROM 表名称 WHERE 条件;

在默认情况下, DELETE语句可以不使用WHERE子句,这时将删除表中的所有行。

如果希望只删除表中的一部分数据,需要通过WHERE指定条件。

在DELETE语句的WHERE子句也可以使用子查询,子查询与SELECT语句中的子查询用法相同。

UPDATE语句

UPDATE语句的作用是对表中已经存在的数据进行修改。

它可以一次修改一行,也可以修改多行。
这条语句的语法格式为:

UPDATE 表名称 SET 列名称=表达式1, 列名称=表达式2 WHERE 条件;

UPDATE语句通过SET子句为指定列指定新值,将列值修改为指定的表达式。

在SET子句中指定所有需要修改的列。
在默认情况下,UPDATE语句不需要WHERE子句,这时UPDATE语句将修改表中的所有行。

如果通过WHERE子句指定了条件,那么UPDATE语句只修改满足条件的行。

在UPDATE语句的WHERE子句中,也可以使用子查询。这时的条件并不是一个确定的条件,而是依赖于对另一个表的查询。