dml测试软件,常用的DML命令 - SilverCheng - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

DML是data manipulation language的缩写,是数据操纵语言的意思。主要用于对数据库表和视图进行操作。一般来说,DML是指select,insert,update,delete。在Oracle 11g中,DML还包括CALL,EXPLAIN PLAN,LOCK TABLE和MERGE语句。

a. 使用INSERT语句插入表数据

(1)一般insert语句的使用

insert语句主要用于向表中插入数据,其语法是:

INSERT INTO [user.]table[@db_link][(column1[,column2]...)]]

VALUES(express1[,express2]...)

table:要插入的表名

db_link:数据库链接名

column:表的列名

express:表达式

values:给出要插入的值列表

(2)多表insert语句的使用

oracle从9i开始可以用一条insert语句实现向多个表中插入数据:

INSERT [ALL] [conditional_insert_clause]

[insert_into_clause values_clause](subquery)

subquery:子查询语句,可以是任何合法的select语句

conditional_insert_clause如下:

[ALL][FIRST]

[WHEN condition THEN][insert_into_clause values_clause]

[ELSE] [insert_into_clause values_clause]

此语法包含了无条件和有条件两种情况:

无条件INSERT ALL:

INSERT ALL

INTO sal_history VALUES(EMPID,HIREDATE,SAL)

INTO mgr_history VALUES(EMPID,MGR,SAL)

SELECT employee_id EMPID,hire_date HIREDATE,salary SAL,manager_id MGR

FROM employees

WHERE employee_id>200;

因为没有附加任何限制于检索出的记录,所以所有检出返回数据将根据其列名插入相应的表中。

有条件的INSERT ALL:

INSERT ALL

WHEN SAL>10000 THEN

INTO sal_history VALUES(EMPID,HIREDATE,SAL)

WHEN MGR>200 THEN

INTO mgr_history VALUES(EMPID,MGR,SAL)

SELECT employee_id EMPID,hire_date HIREDATE,salary SAL,manager_id MGR

FROM employees

WHERE employee_id>200;

这里将进行比较,返回的记录将比较其SAL,如果大于10000则插入SAL_HISTORY,同理,MGR大于200的记录将插入MGR_HISTORY,其余都将丢弃。

有条件的FIRST INSERT:

FIRST和ALL的区别在于当遇到第一个求值为true的子句之后,停止对WHEN子句求值,而ALL不论求值是否为true。

INSERT FIRST

WHEN SAL>10000 THEN

INTO sal_history VALUES(EMPID,HIREDATE,SAL)

WHEN SAL<5000 THEN

INTO sal_history VALUES(EMPID,HIREDATE,SAL)

WHEN MGR>200 THEN

INTO mgr_history VALUES(EMPID,MGR,SAL)

SELECT employee_id EMPID,hire_date HIREDATE,salary SAL,manager_id MGR

FROM employees

WHERE employee_id>200;

上面的例子中,如果第一个when子句求值为true,则其后的when子句将不会被执行,反之将直至遇到第一个满足条件的子句执行为止。

b. 使用update语句更新表数据

在需要修改表中的数据时,可使用update命令,命令由三部分组成:

update后跟一个或者多个要修改的表,必选部分。

set后跟一个或多个要修改的表列,也是必选。

where后跟更新限定条件,这部分可选的。

例如把customer表的state—id为MA的客户的sales改为0,那么语句就是:

update customer set sales=0 where state-id=‘MA';

c. 使用delete语句删除表数据

该命令组成为:

关键字delete from后跟表名,必选

关键字where后跟删除条件,可选

删除customer表state-id为MA的记录,如下:

delete from customer where state-id=’MA‘;

d. TRUNCATE语句的使用

truncate table语句一般用于删除表中的所有行,是一种快速,无日志记录的方法。truncate table与不带where子句的delete语句功能上相同,不过truncate table的速度更快,并且使用更少的系统资源和事务日志资源。

Silver

Written @00:30 2009-2-2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值