zoukankan      html  css  js  c++  java
  • Oracle 通过子查询批量添加、修改表数据

    1、通过查询快速创建表

    create table test1(id,job,mgr,sal)
    as
    (select * from  (select rownum rn,a.JOB,a.MGR,a.SAL from emp a where rownum<=10)  where rn>=6)   ---这是一个分页查询

    ok,表创建成功

    2、通过查询快速创建视图

    create or replace view V_test1
    as
    (select * from  (select rownum rn,a.JOB,a.MGR,a.SAL from emp a where rownum<=10)  where rn>=6)   ---这是一个分页查询

    ok,视图创建成功

    注意:resource角色可能无法创建视图,所以你在创建视图的时候,可能会遇到权限不足的情况,解决方案是:以dba身份登录数据库,然后执行如下语句:

    ok,可以创建视图了。

    3、通过查询结果集结合Insert语句快速填充表

    create table test2(id varchar2(100),mgr number(4),sal number(7,2))  --创建一张表test2
    insert into test2 
    select * from (select rownum rn,a.* from (select MGR,SAL from emp) a where rownum<=10)  where rn>=6   

    ok,成功创建数据表,数据是自查询查出来的数据,注意表字段需要和子查询的结果集保持一致

    4、通过子查询修改表数据

    例:希望员工scott员工的岗位、工资、补助和smith的一样。

    update emp set (job,sal,comm)=
    (select job,sal,comm from emp where ename='SMITH')
    where ename='SCOTT'
    select job,sal,comm from emp where ename in ('SMITH','SCOTT')

    ok,批量更新成功。

    使用子查询更新,这样我们就不用一条条语句进行更新了

  • 相关阅读:
    NetCore使用Log4Net记录日志
    WCF数据协议中XmlArrayItem标签不起作用的问题
    WTM Blazor,Blazor开发利器
    WTM5.0发布,全面支持.net5
    log4netdemo
    mes 入库单号 锁表方案
    线程基础篇-线程同步
    线程基础篇-线程和进程
    EF基础篇-Code First
    EF基础篇-DB First
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/6635566.html
Copyright © 2011-2022 走看看