INSERT SELECT:
    它可以将SELECT语句结果插入表中,在某种意义上可以完成表的复制。
    如:
    USE test; —使用数据库test
    CREATE TABLE CustNew
    (
    cust_id char(10) NOT NULL ,
    cust_name char(50) NOT NULL ,
    cust_address char(50) NULL ,
    cust_city char(50) NULL ,
    cust_state char(5) NULL ,
    cust_zip char(10) NULL ,
    cust_country char(50) NULL ,
    cust_contact char(50) NULL ,
    cust_email char(255) NULL
    ); —创新新表
    INSERT INTO CustNew
    (
    cust_id,
    cust_name,
    cust_address,
    cust_city,
    cust_state,
    cust_zip,
    cust_country,
    cust_contact,
    cust_email
    )
    SELECT cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email
    FROM customers; —将customers表的数据插入新表alter
    SELECT * FROM CustNew;

    返回结果如下:
    1128729-20170509110059504-1011383103.png
    而如果反过来用,大概就是:
    insert into customers (列1,列2,……)
    select 列1,列2,…… from custnew
    即可完成将表custnew中的数据全部插入customers,这也完成了一条insert插入多条数据。
    通常,一条INSERT 语句,只能插入一行数据,要插入多行,就必须执行多个INSERT,但是, INSERT SELECT 是个例外
    以上方法的复制,实际上是重新在数据库中创建了一个新表。
    SELECT INTO:
    这种方法,可以在SQL语句运行中创建一个表,并将一个表复制到这个全新的表。
    我们可以在实验新的SQL语句前,用其进行复制,这样就不影响到实际数据。
    如:
    USE test; —使用数据库
    CREATE TABLE Cucopy as SELECT FROM customers; —复制
    SELECT
    FROM Cucopy;
    返回结果,与上表一致。