create table table_name as
建表时可以同时复制表结构和数据,也可以只复制表结构
复制表结构和数据
create table table_name_new as select * from table_name_old;
只复制表结构
create table table_name_new as select * from table_name_old where 1=2; --加上一个不可能成立的条件
复制表结构也可以这样
create table table_name_new like table_name_old;
insert into table_name select
写入时只能复制数据,但要区分表结构是否一致;
注意:这种方式需要新表事先存在
表结构一致
insert into table_name_new select * from table_name_old;
表结构不一致
此时需要指定对应列
insert into table_name_new (columnX, columnY) select (columnM, columnN) from table_name_old;
select into table_name
查询时只能复制表数据,且不区分表结构是否一致,因为新表事先不能存在
select * into table_name_new from table_name_old where...;
自动创建表并将查到的数据写入新表
参考资料:
https://www.runoob.com/sql/sql-insert-into-select.html