MySQL入门 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

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的数据结果