mysql中複製表數據(select into from和insert into select)

一.簡介

Insert是T-sql中經常使用語句,Insert INTO table(field1,field2,...) values(value1,value2,...)這種形式的在應mysql

用程序開發中必不可少。 sql

但咱們在開發、測試過程當中,常常會遇到須要表複製的狀況,如將一個table1的數據的部分字段複製到測試

table2中,或者將整個table1複製到table2中,這時候咱們就要使用select into  from和 insert into select 表複製語句了。spa


二.方式1(經常使用):insert into select

一、語句形式:code

Insert into Table2(field1,field2,...) select value1,value2,... from Table1



二、要求:orm

目標表Table2必須存在;ci

因爲目標表Table2已經存在,因此咱們除了插入源表Table1的字段外,還能夠插入常量;開發


三、例子:it

   --1.建立測試表 
    create TABLE Table1 
    ( 
        a varchar(10), 
        b varchar(10), 
        c varchar(10), 
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
        ( 
            a ASC 
        ) 
    ) ON [PRIMARY] 
    create TABLE Table2 
    ( 
        a varchar(10), 
        c varchar(10), 
        d int, 
        CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED 
        ( 
            a ASC 
        ) 
    ) ON [PRIMARY] 
    GO 
    --2.建立測試數據 
    Insert into Table1 values('趙','asds','90') 
    Insert into Table1 values('錢','asds','100') 
    Insert into Table1 values('孫','asds','80') 
    Insert into Table1 values('李','asds',null) 
    GO 
    select * from Table2 
    --3.INSERT INTO SELECT語句複製表數據 
    Insert into Table2(a, c, d) select a,c,5 from Table1 
    GO 
    --4.顯示更新後的結果 
    select * from Table2 
    GO 
    --5.刪除測試表 
    drop TABLE Table1 
    drop TABLE Table2



也可參考一下sql:io

INSERT INTO `um_region`(`region_id`,`parent_id`,`name`,`sort`,`type`)
SELECT `region_id`,`parent_id`,`name`,`sort`,`type` FROM `省$`



三.方式2:select into from

一、語句形式:

SELECT vale1, value2 into Table2 from Table1



二、要求:

目標表Table2不存在;

由於在插入時會自動建立表Table2,並將Table1中指定字段數據複製到Table2中。


三、例子:

   --1.建立測試表 
    create TABLE Table1 
    ( 
        a varchar(10), 
        b varchar(10), 
        c varchar(10), 
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
        ( 
            a ASC 
        ) 
    ) ON [PRIMARY] 
    GO 
    --2.建立測試數據 
    Insert into Table1 values('趙','asds','90') 
    Insert into Table1 values('錢','asds','100') 
    Insert into Table1 values('孫','asds','80') 
    Insert into Table1 values('李','asds',null) 
    GO 
    --3.SELECT INTO FROM語句建立表Table2並複製數據 
    select a,c INTO Table2 from Table1 
    GO 
    --4.顯示更新後的結果 
    select * from Table2 
    GO 
    --5.刪除測試表 
    drop TABLE Table1 
    drop TABLE Table2


四.是否複製表結構、數據到新表

一、複製表結構以及數據

CREATE TABLE 新表  
SELECT * FROM 舊錶



二、只複製表結構

      a、      CREATE TABLE 新表

                 SELECT * FROM 舊錶 WHERE 1=2

                 即:讓WHERE條件不成立.
      b、:(低版本的mysql不支持,mysql4.0.25 不支持,mysql5已經支持了)
                CREATE TABLE 新表
                LIKE 舊錶


三、複製舊錶數據到新表(兩表結構同樣)

    INSERT INTO 新表
    SELECT * FROM 舊錶


四、複製舊錶數據到新表(兩表結構不同)

     INSERT INTO 新表(字段1,字段2,…….)
     SELECT 字段1,字段2,…… FROM 舊錶
相關文章
相關標籤/搜索