本节书摘来自异步社区出版社《Oracle SQL疑难解析》一书中的第1章,第1.5节,作者: 【美】Grant Allen , Bob Bryla , Darl Kuhn,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.5 把数据记录从一张表复制到另一张表
Oracle SQL疑难解析
1.5.1 要解决的问题
我们想把一个表中的信息复制到另一个表。
1.5.2 解决方法
使用INSERT语句和SELECT选项,可以把数据从一个表复制到另一个表。假定我们有一个表,里面存放着公司应聘人员信息,其中的很多信息,在HR.EMPLOYEE表中也有。下面的INSERT语句就把用SELECT 语句查询出的CANDIDATES表中的信息,插入HR.EMPLOYEES表中:
1.5.3 数据库如何工作
重点在于先用SELECT语句对CANDIDATES表进行查询,然后把查询结果插入HR.EMPLOYEE表中。单独执行SELECT语句,我们能看到查询的结果,这个结果将传递给INSERT语句。
返回结果:
210 FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER SYSDATE 'IT_PRO 3500 N 103 60
--- ---------- --------- ------ ------------ --------- ------- ---- - --- --
210 Susan Jones SJONES 650.555.9876 30-MAR-09 IT_PROG 3500 103 60
在上面的INSERT语句中,固定了(hard-coded)EMPLOYEE_ID、SALARY、DEPARTMENT_ID的值。我们也用NULL值指明Susan没有COMMISSION_PCT的值——即,她不是销售人员,不在销售奖励的模型中。我们希望HIRE_DATE的值是我们插入记录的当天,所以用内置的SYSDATE函数返回当前系统日期。