两种方法:
1. 在创建表的时候将数据从其他表中复制过来(并且表的结构也复制过来):
语法:
CREATE TABLE table_name AS SELECT column1,......|* FROM table_old;
SQL> SQL> create table userinfo_new 2 AS 3 SELECT * from userinfo; 表已创建。 SQL> desc userinfo_new; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID NUMBER(6) USERNAME VARCHAR2(20) USERPWD VARCHAR2(20) EMAIL VARCHAR2(30) REGDATE DATE SQL>
值也复制了:
SQL> select * from userinfo_new; ID USERNAME USERPWD ---------- -------------------- -------------------- EMAIL REGDATE ------------------------------ -------------- 1 xxx 123456 ltwuyanlong@163.com 20-9月 -15 2 yyy 456123 3 无 ID USERNAME USERPWD
SQL> desc userinfo_new1 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID NUMBER(6) USERNAME VARCHAR2(20) SQL> select * from userinfo_new1; ID USERNAME ---------- -------------------- 1 xxx 2 yyy 3 4 SQL>
---------- -------------------- -------------------- EMAIL REGDATE ------------------------------ -------------- 4 631464569@163.com SQL>
2. 在添加数据的时候将数据从其他表中复制过来:
语法:
INSERT INTO table_name [(column1,column2,...)] select column1,column2,.....| from table_old
这种情况下必须要求两张表都已经存在了才可以使用!
SQL> insert into userinfo_new 2 select * from userinfo; 已创建4行。 SQL> select id from userinfo_new; ID ---------- 1 2 3 4 1 2 3 4 已选择8行。 SQL>
指定插入字段:
SQL> SQL> insert into userinfo_new(id,username) 2 select id,username from userinfo; 已创建4行。 SQL> select id ,username from userinfo_new; ID USERNAME ---------- -------------------- 1 xxx 2 yyy 3 4 1 xxx 2 yyy 3 4 1 xxx 2 yyy 3 ID USERNAME ---------- -------------------- 4 已选择12行。 SQL>