SQL学习 | 如何将一个表的数据复制到另一个新表

新表存在时:

1.两个表的结构一样

INSERT INTO 新表
SELECT * FROM 旧表;

2.两个表的结构不一样

INSERT INTO 新表 (字段1,字段2,...) 
SELECT 字段1,字段2,...
FROM 旧表;

新表不存在时:

1.复制表结构和数据到新表

SELECT * INTO 新表
FROM 旧表
/* MYSQL不适用 */

2. 只复制表结构到新表

  • 方法一、
CREATE TABLE 新表 
SELECT * FROM 旧表 
WHERE 1=2; /* 即:让WHERE条件不成立 */
  • 方法二、
CREATE TABLE 新表
LIKE 旧表;
/* CREAT TABLE LIKE 产生与源表相同的表结构,包括索引和主键,
数据需要用INSERT INTO 语句复制进去 */

2.只复制数据到新表

  • 复制全部数据(新表和旧表相同)
CERETE TABLE 新表
SELECT * FROM 旧表;
/* 这种方法会将旧表中所有的内容都拷贝过来,用这种方法需要注意,
新表中没有了旧表中的primary key,Extra,auto_increment等属性 */
  • 复制某几列数据(新表列数可以多于或者小于旧表列数)
CREAT TABLE 新表 AS SELECT 字段1,字段2,...
FROM 旧表;
/* CREAT TABLE AS 只是复制原数据,其实就是把查询的结果建一个表 */

猜你喜欢

转载自blog.csdn.net/LivLu24/article/details/91367897