insert...select添加数据
当我们在上一节学习创建表时,知道可以使用select从其它表来直接创建表,甚至可以同时复制数据记录。如果你已经拥有了一个表,你同样可以从select语句的配合中获益。
基本语法:
insert into tb_name select * from tb_name1;//表结构完全一致
insert into tb_name(col1) select col1 from tb_name1;//取某个值添加
insert into ... select语句满足下列条件:
1:查询不能包含一个order by子句
2:insert语句的目的表不能出现在select查询部分的from子句,因为这在ANSI SQL中被禁止让从你正在插入的表中select.问题是select将可能发 现在同一个运行期间内先前被插入的记录。当使用子选择子句时,情况能很容易混淆
看下面实例:
insert into test01_03 select * from test01_01;
insert into test01_03(name) select name from test01_01;
请选用test01数据库,先创建一个与表名为test01_01结构一致的表test01_02,然后把test01_01的数据添加到test01_02,查看test01_02的数据结果