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,批量更新成功。
使用子查询更新,这样我们就不用一条条语句进行更新了