Oracle 相同表结构表的建立与insert语句

目录

Oracle 如何创建一个相同表结构的表

方法一:使用sql语句直接创建

方法二:使用sql语句查询建表语句

方法三:使用PLSQL工具

如何向相同表结构的表塞原始数据


Oracle 如何创建一个相同表结构的表

方法一:使用sql语句直接创建

create table 新的table名称 as select * from 旧的table名称 where 1 = 2;

  使用 1 = 2 的目的是只复制表结构,不复制表中的数据。

  优点:操作简单

  缺点:无法复制全部属性,索引等就不可复制

方法二:使用sql语句查询建表语句

select dbms_metadata.get_ddl(类型, 表名称) from dual;
-- 例子: 获取表的ddl语句,表名为example
select dbms_metadata.get_ddl('TABLE', 'EXAMPLE') from dual;

  优点:操作较为简单

  缺点:在工作中可能会遇到账号权限不够,无法查询的情况

方法三:使用PLSQL工具

打开PLSQL工具,查询需要被复制的旧表,【ctrl + 单击】 表名,进入定义,右下角有查看SQL的按钮。

 点击进去,复制内部的建表sql,根据自身的需要改动sql。【索引不能重名,需要加以区分】

  优点:操作简单

  缺点:该功能暂未发现明显缺点

如何向相同表结构的表塞原始数据

假设已经根据 students 表的结构,复制一份新表 students_his,并在 students_his 表的最后加入了【学号和插入时间】两个栏位。

通过如下方式将 students 表中名字为 Ming 的数据完全的复制到 students_his 表中,并在添加插入人员的学号和插入的时间。

insert into students_his
    select a.*, '1234', '2023/01/09 17:15:00'
      from students a
     where name = 'Ming';

你可能感兴趣的:(Oracel,oracle,数据库,sql)