oracle使用子查询插入和修改数据

来源:互联网 发布:qq抓取软件 编辑:程序博客网 时间:2024/05/17 06:54

使用子查询插入数据:

示例一:insert into employee (empno,ename,sal,deptno)

           select empno,ename,sal,deptno from emp

          where deptno=20;

示例二:insert /*+APPEND*/ into employee (empno,ename,sal,deptno)

           select empno,ename,sal,deptno from emp

          where deptno=20;

尽管执行结果一样,但第二条语句使用/*+APPEND*/来表示采用直接装载方法可以使执行速度加快。

使用子查询修改数据:

示例一:select job,sal,comm from emp where ename='SMITH';

           update emp set job='check',sal=2200,comm=200

           where ename='SCOTT';

示例二:update emp set (job,sal,comm)=(

           select job,sal,comm from emp where ename='SMITH')

           where ename='SCOTT';

这个例子说的是:使雇员SCOTT的岗位、工资、补助与雇员SMITH的完全相同。这时候使用子查询只需要编写一条sql语句就可以完成任务,从而降低了网络开销。